【问题标题】:php class methods used statically without class reference?php 类方法在没有类引用的情况下静态使用?
【发布时间】:2013-03-20 14:49:14
【问题描述】:

我有这样的课:

class Utils{

   public function hello()
   {
      return "<b>Hello World</b></br>";
   }

}

我现在可以在我的page.php 中直接做这样的事情吗:

require_once("classes/Utils.php");

echo hello();

或者我必须这样做:

$u = new Utils;
$u->hello();

即使函数不包含需要实例化的对象属性?

【问题讨论】:

    标签: php class static


    【解决方案1】:

    是的,如果您将函数声明为静态。

    class Utils{
    
       public static function hello()
       {
          return "<b>Hello World</b></br>";
       }
    
    }
    

    并将其称为

    Utils::hello()
    

    php static function

    【讨论】:

    • 但是Utils:: 是否必须作为前缀,而不仅仅是hello()?假设文件中不需要其他类也具有 hello() 方法。
    • 是的,这就是静态函数调用。如果你只是写 hello() 你调用的是一个全局函数而不是一个类。
    【解决方案2】:

    实际上你是这样调用静态方法的:

    Utils::hello();
    

    【讨论】:

      【解决方案3】:

      你可以直接这样调用它:

      echo Utils::hello();
      

      这是PHPFiddle example

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多