0

我想使用存储在 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()?以及如何为其添加额外的参数?

4

2 回答 2

2

我想你必须打电话

$return=$xpath->$var1;

注意:call_user_func是您需要的功能

例子 :

阿尔法.php

class Alpha
{
   public function getAlpha($arr_input)
   {
       echo "<pre>";
       print_r($arr_input);
   }
}

索引.php

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
于 2012-06-14T09:11:45.730 回答
0

您可以使用 eval() 执行此操作:

$return = eval('return $xpath->' . $var1 .';');

但是,将 eval() 与用户输入一起使用几乎总是一个坏主意。所以在那儿要小心。

于 2012-06-14T09:27:28.883 回答