php类名,有什么区别

Web*_*don 1 php oop class

我是PHP OOP编程方面的新手,我不明白以下类名的时间和方式以及何时使用它们:

$a = new Classname();
$a = new Classname;

$a = ClassName::function();
$a = ClassName::getInstance();
Run Code Online (Sandbox Code Playgroud)

非常感谢和抱歉愚蠢的问题:

Lei*_*igh 10

这些是相同的.

$a = new Classname();
$a = new Classname;
Run Code Online (Sandbox Code Playgroud)

当类构造函数不接受或不需要其他参数时,您可以互换使用它们.

例:

class Classname
{
    public function __construct($var = null)
    {
        // ..
    }

    static public function getInstance()
    {
        // ..
    }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,你可以使用$a = new Classname;,并$var会采取默认值,或者$a = new Classname('hello')$var将等于传递的值.


这些都是静态方法调用.

$a = ClassName::function();
$a = ClassName::getInstance();
Run Code Online (Sandbox Code Playgroud)

一个调用一个名为"function"的方法(它不能存在 - 它是一个保留字),另一个调用名为"getInstance"的方法.当你使用它们时,实际上取决于方法的作用.

可以在不创建对象实例的情况下调用静态方法.

Classname::staticMethod();
Run Code Online (Sandbox Code Playgroud)

$obj = new Classname;
$obj->method;
Run Code Online (Sandbox Code Playgroud)