PHP的范圍解析操作符(::)的含義分析說明
更新時間:2011年07月03日 22:21:03 作者:
今天看到幾個有關(guān)PHP的符號。一個是@,這個加在一個變量的前面,是為了抑制PHP解釋器報錯,也就是說即使出了錯也不會顯示出來。
今天看到幾個有關(guān)PHP的符號。一個是@,這個加在一個變量的前面,是為了抑制PHP解釋器報錯,也就是說即使出了錯也不會顯示出來。
還有一個更重要的符號PHP的范圍解析操作符(::)
在沒有聲明任何實例的情況下訪問類中的函數(shù)或者基類中的函數(shù)和變量很有用處。而 :: 運算符即用于此情況。
<?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();
}
}
// A 類沒有對象,這將輸出
// I am the original function A::example().<br />
A::example();
// 建立一個 B 類的對象
$b = new B;
// 這將輸出
// I am the redefined function B::example().<br />
// I am the original function A::example().<br />
$b->example();
?>
上面的例子調(diào)用了 A 類的函數(shù) example(),但是這里并不存在 A 類的對象,因此不能這樣用 $a->example() 或者類似的方法調(diào)用 example()。反而我們將 example() 作為一個類函數(shù)來調(diào)用,也就是說,作為一個類自身的函數(shù)來調(diào)用,而不是這個類的任何對象。
這里有類函數(shù),但沒有類的變量。實際上,在調(diào)用函數(shù)時完全沒有任何對象。因而一個類的函數(shù)可以不使用任何對象(但可以使用局部或者全局變量),并且可以根本不使用 $this 變量。
上面的例子中,類 B 重新定義了函數(shù) example()。A 類中原始定義的函數(shù) example() 將被屏蔽并且不再生效,除非使用 :: 運算符來訪問 A 類中的 example() 函數(shù)。如:A::example()(實際上,應(yīng)該寫為 parent::example(),下一章介紹該內(nèi)容)。
就此而論,對于當(dāng)前對象,它可能有對象變量。因此可以在對象函數(shù)的內(nèi)部使用 $this 和對象變量。
還有一個更重要的符號PHP的范圍解析操作符(::)
在沒有聲明任何實例的情況下訪問類中的函數(shù)或者基類中的函數(shù)和變量很有用處。而 :: 運算符即用于此情況。
復(fù)制代碼 代碼如下:
<?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();
}
}
// A 類沒有對象,這將輸出
// I am the original function A::example().<br />
A::example();
// 建立一個 B 類的對象
$b = new B;
// 這將輸出
// I am the redefined function B::example().<br />
// I am the original function A::example().<br />
$b->example();
?>
上面的例子調(diào)用了 A 類的函數(shù) example(),但是這里并不存在 A 類的對象,因此不能這樣用 $a->example() 或者類似的方法調(diào)用 example()。反而我們將 example() 作為一個類函數(shù)來調(diào)用,也就是說,作為一個類自身的函數(shù)來調(diào)用,而不是這個類的任何對象。
這里有類函數(shù),但沒有類的變量。實際上,在調(diào)用函數(shù)時完全沒有任何對象。因而一個類的函數(shù)可以不使用任何對象(但可以使用局部或者全局變量),并且可以根本不使用 $this 變量。
上面的例子中,類 B 重新定義了函數(shù) example()。A 類中原始定義的函數(shù) example() 將被屏蔽并且不再生效,除非使用 :: 運算符來訪問 A 類中的 example() 函數(shù)。如:A::example()(實際上,應(yīng)該寫為 parent::example(),下一章介紹該內(nèi)容)。
就此而論,對于當(dāng)前對象,它可能有對象變量。因此可以在對象函數(shù)的內(nèi)部使用 $this 和對象變量。
相關(guān)文章
關(guān)于file_get_contents返回為空或函數(shù)不可用的解決方案
本篇文章是對file_get_contents返回為空或函數(shù)不可用的解決方案進行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
Mysql數(shù)據(jù)庫操作類( 1127版,提供源碼下載 )
Mysql數(shù)據(jù)庫操作類,學(xué)習(xí)php的朋友可以參考下。2010-12-12
php將數(shù)據(jù)庫導(dǎo)出成excel的方法
有時寫程序時后臺要求把大量數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫中,比如考試成績、電話簿等一般都是存放在excel中的數(shù)據(jù),這時我們可把excel導(dǎo)出成csv文件,然后通過以下程序即可批量導(dǎo)入數(shù)據(jù)到數(shù)據(jù)庫中2010-05-05
dirname(__FILE__)的含義和應(yīng)用說明
這篇文章主要介紹了dirname(__FILE__)的含義和應(yīng)用說明,需要的朋友可以參考下2018-03-03

