这两段代码有什么区别?
<?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;
完全相同,你可以比较这两个脚本的操作码:
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,'name' 7 ECHO $5 6 8 NOP 9 > RETURN 1