繁体   English   中英

我可以在一行中的同一类的方法中将类变量用作变量函数吗?

[英]Can i use a class variable as variable function inside the same class's method in one single line?

我可以在同一个类的方法中将实例变量用作动态变量函数 但是只能在方法内部的另一个变量中局部声明它。 我不能像这样使用它:“ $ this-> $ this-> functionName ”。 我的意思是:

这有效:TheClass.php

<?PHP
   class TheClass{
      public $functionName;

      function setFunctionName($name){
         $this->functionName = $name;
      }

      function processClass(){
         $tempFunctionName = $this->functionName;
         $this->$tempFunctionName();
      }

      function testFunction(){
      echo "this works";
      }
   }
?>

main.php

<?PHP
include "TheClass.php";
$theClass = new TheClass();

$theClass->setFunctionName('testFunction');
$theClass->processClass();
?>

但是我不能像这样以一种方式使用全部内容:

function processClass(){
   $this->$this->functionName();
}

有没有办法(不使用call_user_func )以这种方式使用它,或者让我在本地设置它来使用它。

将其包装在{}

  function processClass(){
     $this->{$this->functionName}();
  }

链接方式:

function setFunctionName($name){
    $this->functionName = $name;

    return $this;
}

$theClass->setFunctionName('testFunction')->processClass();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM