LINUX.ORG.RU

Вывод свойств объекта с именем состоящим из числа.

 


1

1

например я делаю так: $obj = (object) array('1' => 0); а как выводить? echo $obj->1? echo $obj->'1'? эти варианты не работают. подскажите пожалуйста. не работает и этот вариант: echo «$obj -> 1»;



Последнее исправление: vlmash (всего исправлений: 1)

К свойству с числовым именем нельзя обратиться по имени, у ПХП просто нет конструкций для этого! Тем не менее, var_dump и foreach его видят! У массива всё ровно наоборот — по имени нельзя обратиться к свойству со строчным именем, если есть числовое.

vlmash
() автор топика
Ответ на: комментарий от vlmash

У массива всё ровно наоборот — по имени нельзя обратиться к свойству со строчным именем, если есть числовое.

Вообщето можно

➜  ~  php -a
Interactive shell

php > $a = array('test' => 'hello', 5 => 'hello5');
php > var_dump($a[5], $a['test']);
php shell code:1:
string(6) "hello5"
php shell code:1:
string(5) "hello"
php > 

kiotoze ★★★★
()
Ответ на: комментарий от vlmash

К свойству с числовым именем нельзя обратиться по имени, у ПХП просто нет конструкций для этого!

Конструкция есть $obj->{1}, но она не работает по той причине, что $1 не соответствует имени переменной. Такие свойства можно получить только через итератор, или преобразуя объект в массив.

no-such-file ★★★★★
()

$obj['1'] работает? Вобще, в синтаксисе PHP есть прямой запрет на использование имен переменных, начинающихся с цифры.

Infra_HDC ★★★★★
()
Ответ на: комментарий от Infra_HDC

Только если у объекта будет аррай акцесс. Но у стдобжекта такого нема.

deep-purple ★★★★★
()
Последнее исправление: deep-purple (всего исправлений: 1)
php > $o = new stdclass();
php > $k = '1';
php > $o->$k = 'lala';
php > var_dump($o);
object(stdClass)#1 (1) {
  ["1"]=>
  string(4) "lala"
}
php > var_dump($o->$k);
string(4) "lala"

Вот так вот можно, например. Только зачем?

shooter93 ★★
()
Последнее исправление: shooter93 (всего исправлений: 1)
Ответ на: комментарий от Anonymous

Нужно быть более современным :)

Psy Shell v0.8.5 (PHP 7.0.15-0ubuntu0.16.04.4 — cli) by Justin Hileman
>>> $١=1;
=> 1
>>> $١;
=> 1
>>> $٩=9;
=> 9
>>> $٩;
=> 9

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.