Php将对象路径传递给函数
这可能非常容易。给出了以下目标和功能:Php将对象路径传递给函数,php,Php,这可能非常容易。给出了以下目标和功能: $object = new stdClass(); $object->a = 'Here we go'; $object->b->first = "again"; $object->b->second = "and again"; function get_item($object, $item){ print_r($object->{$item}); } get_item($object, "a"); //
$object = new stdClass();
$object->a = 'Here we go';
$object->b->first = "again";
$object->b->second = "and again";
function get_item($object, $item){
print_r($object->{$item});
}
get_item($object, "a"); // works
get_item($object, "b->first"); // NOTICE Undefined property: stdClass::$b
当它向函数传递单个属性时,传递像
b->first
这样的路径失败。有人能告诉我如何解决这个问题吗?您不能直接执行,但可以逐级执行,因此在函数中使用explode()
将其拆分为每个级别,并一次应用一个级别
function get_item($object, $item){
$output = $object;
foreach ( explode("->", $item) as $level ) {
$output = $output->{$level};
}
print_r($output);
}
您不能直接执行,但可以逐级执行,因此在函数中使用
explode()
将其拆分为每个级别,并一次应用一个级别
function get_item($object, $item){
$output = $object;
foreach ( explode("->", $item) as $level ) {
$output = $output->{$level};
}
print_r($output);
}
您也可以这样做,而不是
get_item($object,“b->first”)代码>使用获取物品($object->b,“first”)代码>
您也可以这样做,而不是获取项目($object,“b->first”)代码>使用获取物品($object->b,“first”)代码>
没有简单的方法。PHP无法理解字符串中的->
是运算符。没有简单的方法。PHP无法理解字符串中的->
是一个运算符。我只想添加几乎完全相同的答案-因此我的投票:DOne可以问一个问题为什么有一个函数?我只想添加几乎完全相同的答案-因此我的投票:DOne可以问一个问题为什么有一个函数?