用方法定义 class

Defining a class with a method

如果我这样定义 class LOG

class LOG {
    static public function LOG(){
        return;
    }
}
echo 1;

当我运行它时,它什么也没显示。如果我注释掉这样的方法:

class LOG {
    /*static public function LOG(){
        return;
    }*/
}
echo 1;

它会在浏览器中显示“1”。为什么第一个代码片段不起作用?

编辑

当您打开错误报告时,您将收到此错误:

Fatal error: Constructor LOG::LOG() cannot be static

去掉函数前面的static关键字就可以了:

class LOG{
    public function LOG(){
        return;
    }
}

Example


在 PHP 中,当您像这样创建 class 时:

class LOG{
    static public function LOG(){
        return;
    }
}

(与class同名函数)

它将运行 用作__construct() 方法。 它没有到达回声,因为你在那里有 return; 语句。

如果你把它注释掉,它应该可以工作:

class LOG{
    static public function LOG(){
        // return;
        echo 'inside class';
    }
}

但我认为这不是错误,一定有其他问题。打开错误报告并让我们知道是否有任何错误。

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);