- 相關(guān)推薦
PHP的范圍解析操作符
今天看到幾個(gè)有關(guān)PHP的符號。一個(gè)是@,這個(gè)加在一個(gè)變量的前面,是為了抑制PHP解釋器報錯,也就是說(shuō)即使出了錯也不會(huì )顯示出來(lái)。
還有一個(gè)更重要的符號PHP的范圍解析操作符(::)
在沒(méi)有聲明任何實(shí)例的情況下訪(fǎng)問(wèn)類(lèi)中的函數或者基類(lèi)中的函數和變量很有用處。而 :: 運算符即用于此情況。
復制代碼 代碼如下:
<?php
class A {
function example() {
echo "I am the original function A::example().
n";
}
}
class B extends A {
function example() {
echo "I am the redefined function B::example().
n";
A::example();
}
}
// A 類(lèi)沒(méi)有對象,這將輸出
// I am the original function A::example().
A::example();
// 建立一個(gè) B 類(lèi)的對象
$b = new B;
// 這將輸出
// I am the redefined function B::example().
// I am the original function A::example().
$b->example();
?>
上面的例子調用了 A 類(lèi)的函數 example(),但是這里并不存在 A 類(lèi)的對象,因此不能這樣用 $a->example() 或者類(lèi)似的方法調用 example()。反而我們將 example() 作為一個(gè)類(lèi)函數來(lái)調用,也就是說(shuō),作為一個(gè)類(lèi)自身的函數來(lái)調用,而不是這個(gè)類(lèi)的任何對象。
這里有類(lèi)函數,但沒(méi)有類(lèi)的變量。實(shí)際上,在調用函數時(shí)完全沒(méi)有任何對象。因而一個(gè)類(lèi)的函數可以不使用任何對象(但可以使用局部或者全局變量),并且可以根本不使用 $this 變量。
上面的例子中,類(lèi) B 重新定義了函數 example()。A 類(lèi)中原始定義的函數 example() 將被屏蔽并且不再生效,除非使用 :: 運算符來(lái)訪(fǎng)問(wèn) A 類(lèi)中的 example() 函數。如:A::example()(實(shí)際上,應該寫(xiě)為 parent::example(),下一章介紹該內容)。
就此而論,對于當前對象,它可能有對象變量。因此可以在對象函數的內部使用 $this 和對象變量。
【PHP的范圍解析操作符】相關(guān)文章:
php解析ini配置文件07-13
解析項目管理之范圍管理08-22
PHP的壓縮函數06-21
php高級教程01-23
如何學(xué)好PHP知識09-20
PHP的基礎編程與應用10-16
淺析php函數的實(shí)例06-08
配置 PHP 調試環(huán)境07-20
PHP的錯誤機制總結09-09