PHP:对象方法+来自var的属性调用

时间:2012-06-14 09:08:29

标签: php object

我想调用一个对象方法+属性,其内容存储在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?

2 个答案:

答案 0 :(得分:2)

我认为你必须致电

$return=$xpath->$var1;

注意:call_user_func是您需要的功能

示例:

alpha.php

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

的index.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

答案 1 :(得分:0)

您可以使用eval():

执行此操作
$return = eval('return $xpath->' . $var1 .';');

然而,使用带有用户输入的eval()几乎总是一个坏主意。所以要小心。