是否可以在stdClass下定义函数

时间:2016-05-19 00:23:38

标签: php function object stdclass

这里我尝试在stdClass对象下定义一个函数。

<?php
$x= function($name){return "Hello ".$name;};

echo $x("Sun");

$hey = (object)[ "x" => function($name){return "Hello ".$name;}, "y" =>"Hello Venus"];

echo $hey->x("Mercury");
echo $hey->y;

但它说:致命错误:调用未定义的方法stdClass :: x()

1 个答案:

答案 0 :(得分:1)

这是你能得到的最接近的地方:

$x = function ($name) { return 'hello ' . $name; };
$obj = new stdClass();
$obj->x = $x;

echo call_user_func($obj->x, 'john'); // this will work
echo $obj->x('john');                 // this will not work

你不需要在php7中使用call_user_func。