我想调用一个对象方法+属性,其内容存储在var中... 例如:
// setup the object
$xpath = new DOMXpath();
// setup the 'method'+'property' to call
$var1 = "query('something')->item(O)->nodeValue";
$return = $xpath->$var1();
显然,我犯了一个错误......假设直接呼叫正在发挥作用,即:
$return2 = $xpath->query('something')->item(0)->value;
echo "Return2 : ".$return2; //print okeedokee ...
如何将args传递给query()?以及如何为它添加额外的args?
答案 0 :(得分:2)
我认为你必须致电
$return=$xpath->$var1;
注意:call_user_func
是您需要的功能
示例:
class Alpha
{
public function getAlpha($arr_input)
{
echo "<pre>";
print_r($arr_input);
}
}
include_once 'alpha.php';
$post = array('one','two','three');
$obj_alpha = new Alpha();
call_user_func( array( $obj_alpha , 'getAlpha' ), $post ) ;
//here I call `getAlpha` function from object of class alpha (`$obj_alpha`)
with argument `$post`
//will print $post array
答案 1 :(得分:0)
您可以使用eval():
执行此操作$return = eval('return $xpath->' . $var1 .';');
然而,使用带有用户输入的eval()几乎总是一个坏主意。所以要小心。