【问题标题】:Calling Static Member Function on Class Stored as String in PHP?在 PHP 中存储为字符串的类上调用静态成员函数?
【发布时间】:2020-08-02 13:34:08
【问题描述】:

因为我知道可以调用存储为字符串的类的成员函数。但我想知道是否有任何方法可以对 PHP 中的静态成员函数做同样的事情。 例如:

class A
{
   public static function run(){
       echo "OK";
   }
}

"A"::"run"()

类似于上面的例子。 请帮帮我。提前致谢。

【问题讨论】:

    标签: php class oop methods


    【解决方案1】:

    为了解决我在开发用户友好的 PHP 框架时遇到的这类问题,将类名和静态方法名作为字符串存储在一些 PHP 变量中。

    $className = "A";
    $methodName = "run";
    

    然后这样称呼它:

    $className::$methodName();
    

    或者第二种方式

    $func = "A::run";
    $func(); //or
    "A::run"();
    

    这就是调用存储为字符串的类的静态方法的方式。 这其中一种方式,更多可以在https://www.designcise.com/web/tutorial/how-to-dynamically-invoke-a-class-method-in-php

    【讨论】:

      【解决方案2】:

      你可以像这样调用类作为字符串

      <?php
      class A 
      {
          public static function run()
          {
              echo "OK";
          }   
      }
      
      $stringClass = "A";
      $staticMethod = "run";
      
      $stringClass::$staticMethod();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-18
        • 2016-05-10
        • 2018-08-26
        相关资源
        最近更新 更多