PHP ::(这是什么意思/做什么?)

时间:2011-03-09 16:40:13

标签: php

有点难以谷歌“::”,因为它忽略了这些符号!

所以以一种粗鲁的方式,我试图找出::适合PHP的地方。

由于

4 个答案:

答案 0 :(得分:5)

这意味着静态方法。

Product::get_matching_products($keyword);

意味着get_matching_productsProduct

上的静态方法

答案 1 :(得分:4)

双冒号是一个静态方法调用。

以下是静态方法的PHP手册页:http://php.net/manual/en/language.oop5.static.php

this tutorial page also has useful information

答案 2 :(得分:2)

以简单的方式说,您可以从代码的任何部分调用静态方法或变量,而无需实例化类。为了达到这个目的,你使用::

这是帮助您完成手册的示例

<?php
function Demonstration()
{
    return 'This is the result of demonstration()';
}

class MyStaticClass
{
    //public static $MyStaticVar = Demonstration(); //!!! FAILS: syntax error
    public static $MyStaticVar = null;

    public static function MyStaticInit()
    {
        //this is the static constructor
        //because in a function, everything is allowed, including initializing using other functions

        self::$MyStaticVar = Demonstration();
    }
} MyStaticClass::MyStaticInit(); //Call the static constructor

echo MyStaticClass::$MyStaticVar;
//This is the result of demonstration()
?> 

答案 3 :(得分:2)

:: vs. - &gt;,self vs. $ this

对于那些对 :: - &gt; 自我 $ this 之间的区别感到困惑的人,我提出以下规则:

如果引用的变量或方法声明为const或static,则必须使用 :: 运算符。

如果引用的变量或方法未声明为const或static,则必须使用 - &gt; 运算符。

如果要从类中访问const或静态变量或方法,则必须使用自引用 self

如果要从非const或静态的类中访问变量或方法,则必须使用自引用变量 $ this