今天看到幾個有關php的符號。乙個是@,這個加在乙個變數的前面,是為了抑制php直譯器報錯,也就是說即使出了錯也不會顯示出來。
還有乙個更重要的符號php的範圍解析操作符(::)
在沒有宣告任何例項的情況下訪問類中的函式或者基類中的函式和變數很有用處而 :: 運算子即用於此情況。
複製** **如下:
<?php
class a
} class b extends a
} // a 類沒有物件,這將輸出
// i am the original function a::example().
程式設計客棧;
a::example();
// 建立乙個 b 類的物件
$b = new b;
// 這將輸出
// i am the redefined function b::example().
// i am the original function a::example().
$b->example();
?>
上面的例子呼叫了 a 類的函式 example(),但是這裡並不存在 a 類的物件,因此不能這樣用 $a->example() 或者類似的方法呼叫 example()。反而我們將 example()程式設計客棧 作為乙個類函式來呼叫,也就是說,作為乙個類自身的函式來呼叫,而不是這個類的任何物件。
這裡有類函式,但沒有類的變數。實際上,在呼叫函式時完全沒有任何物件。因而乙個類的函式可以不使用任何物件(但可以使用區域性或者全域性變數),並且可以根本不使用 $this 變數。
上面的例子中,類 b 重新定義了函式 example()。a 類中原始定義的函式 example() 將被遮蔽並且不再生效,除非使用 :: 運算子來訪問 a 類中的 example() 函式。如:a::example()(實際上,應該寫為 parent::example(),下一章介紹該內容)。
就此而論,對於當前物件,它可能有物件變數。因此可以在物件函式的內部使用 $this 和物件變數。
本文標題: php的範圍解析操作符(::)的含義分析說明
本文位址: /wangluo/php/82630.html
PHP 範圍解析操作符, call ,
echo 範圍解析操作符 的使用 echo 在類的內部使用 echo class foo public function call name params public function invoke name params func class myclass extends foo const ...
範圍解析操作符 ( )
範圍解析操作符 也可稱作 paamayim nekudotayim 或者更簡單地說是一對冒號,可以用於訪問靜態成員,類常量,還可以用於覆蓋類中的屬性和方法。當在類定義之外引用到這些專案時,要使用類名。自 php 5.3.0 起,可以通過變數來引用類,該變數的值不能是關鍵字 如 self,parent...
範圍解析操作符( )
範圍解析操作符 是一對冒號,可以用於訪問靜態成員 方法和常量,以及被覆蓋類中的成員和方法。當在類的外部使用 符號訪問這些靜態成員 方法和常量時,必須使用類的名字,如下面例子所示。class person 輸出靜態成員屬性值 echo person country.訪問靜態方法 person myco...