PHP :对象方法+来自变量的专有调用


PHP : object method+proprety call from 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 ...

如何将参数传递给查询()?以及如何为其添加额外的参数?

我认为你必须打电话

$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
您可以使用

eval() 执行此操作:

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

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