Каким будет аналог объекта javascript в PHP?

var obj 	= {
		'a' : function(){ return 1; },
		'b' : {
			'ba' : function(){ return 2; },
			'bb' : {
				'bba' : function(){ return 3; }
			}
		}
	}
	obj.a();
	obj.b.ba();
	obj.b.bb.bba();

Прошу привести пример этого js кода на php.
  • Вопрос задан
  • 422 просмотра
Решения вопроса 1
27cm
@27cm
TODO: Написать статус
$obj = (object) [
    'a' => function(){ return 1; },
    'b' => (object) [
        'ba' => function(){ return 2; },
        'bb' => (object) [
            'bba' => function(){ return 3; }
        ]
    ]
];
call_user_func($obj->a);
call_user_func($obj->b->ba);
call_user_func($obj->b->bb->bba);


ideone.com/V0VcC8

Ещё можно так:
$obj->a->__invoke();
$obj->b->ba->__invoke();
$obj->b->bb->bba->__invoke();
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
классом
Ответ написан
Комментировать
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Если на коленке, то вот так:
$obj = [
    'a' => function(){ return 1; },
    'b' => [
      'ba' => function(){ return 2; },
      'bb' => [
        'bba' => function(){ return 3; }
      ]
    ]
];

$obj['a']();
$obj['b']['ba']();
$obj['b']['bb']['bba']();


А вообще, конечно, xmoonlight прав.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы