ホームページ >バックエンド開発 >PHPチュートリアル >ダブルコロン範囲解析演算子と PHP の arrow -> 演算子の違い

ダブルコロン範囲解析演算子と PHP の arrow -> 演算子の違い

黄舟
黄舟オリジナル
2017-07-02 11:48:513665ブラウズ

二重コロンは通常、staticメソッドとstatic変数を呼び出すときに使用されます。この時点では、クラスをインスタンス化する必要はありません。代わりに、矢印 演算子 - > を使用する場合、クラスをインスタンス化する必要があります (またはクラス内で呼び出すことができます)。

二重コロン (::) は位置アクセス記号です。これは静的なメソッドや変数だけを意味するわけではありません。しかし、それは、結腸の左側にあるものが結腸の右側にあるものを呼び出すことを意味します。そういう意味です。それで。 。 $self を左側に書くことはできません。 $self が最初に解析されるため、変数 $self が事前に定義されていない限り、$self はそれ自体を指します。
最新バージョンのphp.二重コロンは、この関数の後に正確に使用されます。 。置き換え可能 - > オブジェクト を呼び出して変数を取得します。ポジションインジケーターだから。 。

は、オブジェクトのメソッドと属性を区別し、クラスの静的メソッドと静的変数にアクセスすることです。クラスの静的メソッドと静的変数はクラスに対してパブリックであり、インスタンス化せずにアクセスできます。オブジェクトの属性は各クラスに固有であるため、最初にインスタンス化する必要があります。 C++、JAVA などの他の言語にも同じことが当てはまります (もちろん、提供されるアクセス シンボルは異なる場合があります)

- > はオブジェクトのメソッドとプロパティにアクセスすることです。クラスの静的メソッドと静的変数

-> オブジェクト アクセスと ::location アクセス

理論的な部分では誰もがこれまでに述べてきましたが、それらは確かに正しいです。しかし、php は少し異なります。
デフォルト設定では、php には厳密な要件はありません:: 静的メソッドを呼び出す必要があります
次のコードをテストすることでわかります

class t{
    public $v = 1;
    public function getVar(){
        return 1;//$this->v;
    }
}

class xxxxx
{
public function actionIndex()
    {
$x = t::getVar();
        $t = new t();
        $x = $t->getVar();
    }
}


作者:楚天乐
链接:https://www.zhihu.com/question/19782824/answer/35943595
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

以上がダブルコロン範囲解析演算子と PHP の arrow -> 演算子の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。