我在PHP.net中遇到一個關於static關鍵字的問題, 在這個Link,PHP.net解釋關於靜態關鍵字我確實理解他們所說的,但我沒有「像其他任何PHP靜態變量一樣」成功獲得一個句子。 我只是沒有得到它,如果有人可以幫助我的代碼示例,mabye的解釋會很好。PHP,OOP,Static
0
A
回答
3
當說「像任何其他靜態變量」手冊引用一個函數內的靜態變量。在典型的例子是,保持內部計數器功能:
function foo() {
static $counter = 0; // static variable
return ++$counter;
}
這樣的和靜態的類屬性,靜態變量會對您可以初始化它們表達的限制。
function foo() {
static $counter = getInitialValue(); // ERROR: not possible!
return ++$counter;
}
如果你需要做這樣的事情,通常的解決辦法是
function foo() {
static $counter; // not initialized explicitly, same as = null
if ($counter === null) { // three equals!
$counter = getInitialValue();
}
return ++$counter;
}
1
基本上,你可以這樣做:
class Foo
{
public static $my_static = 'foo';
public function staticValue() {
return self::$my_static;
}
}
其中$my_static
被初始化爲與字符串值foo
。但你不能做的:
class Foo
{
public static $my_static = substr('food',0,3);
public function staticValue() {
return self::$my_static;
}
}
,並期望$my_static
包含函數調用substr
的結果;直接將一個函數的返回值分配給一個靜態變量是非法操作。同樣,您不能這樣做:
class Foo
{
public static $my_static = 'foo';
public static $my_static_2 = $my_static;
public function staticValue() {
return self::$my_static;
}
}
因爲您可能無法通過指向另一個變量來初始化靜態變量。
相關問題
- 1. PHP Static var not working
- 2. PHP OOP問題
- 3. PHP OOP路由
- 4. php parse_ini_file oop&深
- 5. OOP PHP - get_object_vars
- 6. OOP PHP和MySQL
- 7. PHP OOP NOT ADDING
- 8. PHP OOP分頁
- 9. PHP OOP問題
- 10. PHP OOP vs Inline
- 11. php oop和mysql
- 12. PHP uasort在OOP
- 13. PHP,OOP,靜態
- 14. mysql select oop php
- 15. OOP PHP類
- 16. C++ static non-static
- 17. C++ OOP和PHP OOP之間的區別
- 18. 問題與PHP OOP
- 19. PHP OOP類設計
- 20. OOP&Forms,JavaScript VS PHP
- 21. PHP包含vs OOP
- 22. 跨越到PHP OOP
- 23. 如何在PHP OOP
- 24. 方法鏈PHP OOP
- 25. PHP OOP - 擴展類
- 26. 測試非OOP PHP
- 27. DB連接PHP OOP
- 28. PHP OOP,jQuery和MVC
- 29. PHP mysqli_fetch_array()OOP風格
- 30. PHP OOP Mysql查詢
謝謝Guy的我現在正在閱讀。 – Blanktext