2011-12-28 11 views
0

可能性の重複:PHPで
Reference - What does this symbol mean in PHP?"::"の構文は何を意味しますか?

::は何を意味するのでしょうか?例えば

Pagination::set_config($config); 

はそれが=>に似てますか?

+3

::の名前はパアマイムネクドタイムです。 – Armin

+0

@Gordon - ありがとう - SO検索ボックスでのさまざまな検索が私の質問に答えることができませんでした。 – diagonalbatman

+0

@ThinkingMonkey - 私はあなたをdownvoteしなかった!そして、私は検索しました...ちょうど適切な用語を "ヒット"しませんでした。 – diagonalbatman

答えて

0

::スコープ解決演算子です(元々C++でそう呼ばれる)は、クラスPaginationset_config($config)メソッドを関連付けるていることを意味します。それは静的メソッドであり、静的メソッドはそのクラスのオブジェクトではなくクラスに関連付けられているため、静的メソッドはそのクラスのオブジェクトからアクセスできません。

Pagination::set_config($config); 

表記 - >は、インスタンスメンバーにアクセスするために使用されます。 =>という表記法は、PHPの連想配列とともに使用され、それらの配列のメンバーにアクセスします。

4

PHPではScope Resolution Operatorです。これは、未初期化クラスのメソッドと属性にアクセスするために使用されます。この記法に明示される方法は、静的メソッドと呼ばれます。

さらに、この表記法を使用して、(自分がいる場所から)相対的に拡張されたクラスをトラバースすることができます。例:この例では

class betterClass extends basicClass { 
    protected function doTheMagic() { 
     $result = parent::doTheMagic(); 
     echo "this will output the result: " . $result; 
     return $result; 
    } 
} 

doTheMagic方法は、その親の既存の方法を上書きするが、parent::doTheMagic();と元のメソッドは、それにもかかわらず、呼び出すことができます。

1

この「::」構文は、スコープ解決演算子と呼ばれます。

これは、インスタンスがまだない基本クラスまたはクラスの関数と変数を参照するために使用されます。 php.netから

例:

<?php 
class A { 
    function example() { 
     echo "I am the original function A::example().<br />\n"; 
    } 
} 

class B extends A { 
    function example() { 
     echo "I am the redefined function B::example().<br />\n"; 
     A::example(); 
    } 
} 

// there is no object of class A. 
// this will print 
// I am the original function A::example().<br /> 
A::example(); 

// create an object of class B. 
$b = new B; 

// this will print 
// I am the redefined function B::example().<br /> 
// I am the original function A::example().<br /> 
$b->example(); 
?> 

だけの例では、コメントを読んでください。詳細は、the php.net articleを参照してください。

関連する問題