Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Удаленная работа для IT-специалистов
class a { public $b='cc'; } $obj=new a(); $obj->{$b='dd'}; // что это значит?
$b = 'dd'; $obj->dd;
Ну почему же странный?
но он переменную $b в данном случае, никак не использует
$b = 'dd'; $obj->$b;
melkij@melkij:~$ php -d opcache.enable_cli=on -d opcache.opt_debug_level=0x10000 /tmp/op.php $_main: ; (lines=8, args=0, vars=2, tmps=6) ; (before optimizer) ; /tmp/op.php:1-7 L0 (2): NOP L1 (5): V3 = NEW 0 string("a") L2 (5): DO_FCALL L3 (5): ASSIGN CV0($obj) V3 L4 (6): V6 = ASSIGN CV1($b) string("dd") L5 (6): T7 = FETCH_OBJ_R CV0($obj) V6 L6 (6): FREE T7 L7 (7): RETURN int(1) PHP Notice: Undefined property: a::$dd in /tmp/op.php on line 6 melkij@melkij:~$ php -d opcache.enable_cli=on -d opcache.opt_debug_level=0x20000 /tmp/op.php $_main: ; (lines=7, args=0, vars=2, tmps=2) ; (after optimizer) ; /tmp/op.php:1-7 L0 (5): V2 = NEW 0 string("a") L1 (5): DO_FCALL L2 (5): ASSIGN CV0($obj) V2 L3 (6): V3 = ASSIGN CV1($b) string("dd") L4 (6): T2 = FETCH_OBJ_R CV0($obj) string("dd") L5 (6): FREE T2 L6 (7): RETURN int(1) PHP Notice: Undefined property: a::$dd in /tmp/op.php on line 6
$obj->dd