PHP的範圍解析操作符
今天看到幾個有關PHP的符號。一個是@,這個加在一個變量的前面,是為了抑制PHP解釋器報錯,也就是説即使出了錯也不會顯示出來。
還有一個更重要的符號PHP的範圍解析操作符(::)
在沒有聲明任何實例的情況下訪問類中的函數或者基類中的函數和變量很有用處。而 :: 運算符即用於此情況。
複製代碼 代碼如下:
<?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 類沒有對象,這將輸出
// 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 和對象變量。
-
針對dom元素的分析應用
如果這個DOM元素沒有樣式也就談不上操作了。2.我們也可以直接用JS動態的向html裏寫入DOM元素。今天這章我們就講這兩個應用(一)對html裏現有的DOM元素進行操作。我上面説了,對現有的DOM元素進行操作,無非就是對樣式的操作。所以我們首先就要能獲取這個DOM元素的樣...
-
如何理解Javascript的caller,callee,call,apply區別
在提到上述的概念之前,首先想説説javascript中函數的隱含參數:argumentsarguments該對象代表正在執行的函數和調用它的函數的參數。[function.]arguments[n]參數function:選項。當前正在執行的Function對象的名字。n:選項。要傳遞給Function對象的從0開始的參數值...
-
如何理解Javascript的caller,callee,call,apply區別
在提到上述的概念之前,首先想説説javascript中函數的隱含參數:argumentsarguments該對象代表正在執行的函數和調用它的函數的參數。[function.]arguments[n]參數function:選項。當前正在執行的Function對象的名字。n:選項。要傳遞給Function對象的從0開始的參數值...
-
解決PHP中的Cannot modify header information 問題
我就遇到這種問題,網上找到這個解決的方案,就收藏下寫PHP的朋友們肯定遇到過這樣一個問題:通過header函數改變http協議頭的時候,會出現一個類似下面格式的warning:複製代碼代碼如下:Warning:Cannotmodifyheaderinformation-headersalreadysentby這是為什麼呢?因為在...