Есть ли разница между созданием экземпляра со скобками или без них?
В чем разница между этими 2 частями кодов?
<?php
$object1 = new User();
//^^
$object1->name = "Hello";
echo $object1->name;
class User {}
?>
И:
<?php
$object1 = new User;
//^
$object1->name = "Hello";
echo $object1->name;
class User {}
?>
Я получаю тот же результат:
Hello
Так есть ли какая-то разница, использую я скобки или нет в:
$object1=new User;
8
2 answers
Они точно такие же, вы можете сравнить код операции этих 2 сценариев:
1 сценарий:
$object1=new User();
$object1->name="Hello";
echo $object1->name;
class User {}
Код операции:
line # * op fetch ext return operands
---------------------------------------------------------------------------------
3 0 > FETCH_CLASS 4 :0 'User'
1 NEW $1 :0
2 DO_FCALL_BY_NAME 0
3 ASSIGN !0, $1
4 4 ASSIGN_OBJ !0, 'name'
5 OP_DATA 'Hello'
5 6 FETCH_OBJ_R $5 !0, 'name'
7 ECHO $5
6 8 NOP
9 > RETURN 1
2 сценарий:
$object1=new User;
$object1->name="Hello";
echo $object1->name;
class User {}
Код операции:
line # * op fetch ext return operands
---------------------------------------------------------------------------------
3 0 > FETCH_CLASS 4 :0 'User'
1 NEW $1 :0
2 DO_FCALL_BY_NAME 0
3 ASSIGN !0, $1
4 4 ASSIGN_OBJ !0, 'name'
5 OP_DATA 'Hello'
5 6 FETCH_OBJ_R $5 !0, 'name'
7 ECHO $5
6 8 NOP
9 > RETURN 1
21
Author: Rizier123, 2015-03-07 11:18:03
Оба равны. если вы не используете какое-либо соглашение о коде, то используйте то, что вам нравится. Я думаю, что $object1 = new User()
было бы полезно вместо $object1 = new User
. если бы вы передавали аргументы конструктору.
0
Author: Rizwan Shah, 2016-06-03 19:15:31