$test1 = [ 'greeting' => function($name) { return 'Hello ' . $name; }, ]; $test2 = (object) $test1; dump($test1['greeting']('Danny')); dump($test2->greeting('Danny'));
Первая попытка
Вторая попытка
Ошибка третьей попытки: (
Извините, если раньше об этом спрашивали, но я не знал, как это сформулировать, или если кто-то может указать мне правильное направление, я был бы очень признателен.
Я пытаюсь поместить переменную внутрь $ test2-> приветствие, но оно не разрешено
Просто добавьте пару скобок:
$result = ($test2->greeting)('Danny');
или, с помощью dump:
dump
dump(($test2->greeting)('Danny'));
Если вы этого не сделаете, PHP всегда будет интерпретировать его как вызов метода.