Я знаю, что его можно получить доступ к объекту / методу, используя переменную в качестве ее имени
напр .:
$propName = 'something'; $something = $object->$propName;
Можно ли делать те же w / константы или статические свойства?
Я пробовал:
$ constName = 'MY_CONST';
MyCLass::{$constName};
а также
$obj::{$constName};
Но ничего не работает, и я не мог найти его нигде.
Use: Class::$$constName
, это похоже на обычные переменные переменные .
Демо-версия:
<?php class MyClass { public static $var = 'A'; } $name = 'var'; echo MyClass::$$name; // echoes 'A'
Константы могут иметь доступ с constant
функцией:
constant('MyClass::'.$constantName)
Вы можете использовать постоянную функцию:
constant('bar::'. $const); constant("$obj::". $const); //note the double quote
Это работает для меня:
<?php class Test { public static $nombre = "pepe"; public function __construct() { return self; } } $varName = "nombre"; echo Test::${$varName};