我想知道PHP是否有類型的變量在類似其他語言中的靜態功能。我的意思是同一個類的所有對象都使用相同的變量,當它更新時,它會更新每個對象。靜態是關閉的,因爲它在所有對象中共享,但我需要能夠更新它。我必須爲此使用全局變量嗎?什麼是其他語言中的靜態變量的PHP等價物?
7
A
回答
3
我覺得靜是你想要的。您可以更新一個靜態變量,你就必須做一個 「靜態上下文」(即使用::運算
class Class1 {
protected static $_count = 0;
public function incrementCount() {
return self::$_count++;
}
}
$instance1 = new Class1();
$instance2 = new Class1();
var_dump($instance1->incrementCount(), $instance2->incrementCount());
將輸出:。
INT 0
INT 1
0
您可以簡單地在PHP文件中創建變量,名爲Constants。
--Constants.php-- $ DATABASE_NAME = 「MySQL的」
,並在文件中包含該文件。你可以改變它的價值。它接近你想要的,但不好稱它們爲常量,因爲常量不會被改變,這就是我困惑的原因:)。
0
我不明白爲什麼使變量靜態不適用於你所描述的(但它與關鍵字最終沒有關係)?
<?php
class Bla
{
public static $var;
public function __construct()
{
Bla::$var = Bla::$var + 1;
}
}
$test = new Bla();
echo Bla::$var; // 1
$test = new Bla();
echo Bla::$var; // 2
?>
1
您可以更新靜態屬性:
class A {
protected static $_foo = 0;
public function increment()
{
self::$_foo++;
}
public function getFoo()
{
return self::$_foo;
}
}
$instanceOne = new A();
$instanceTwo = new A();
$instanceOne->getFoo(); // returns 0
$instanceTwo->increment();
$instanceOne->getFoo(); // returns 1
0
我覺得static
是您正在查找的關鍵字。
並沒有什麼阻止一個static
來自beeing的「更新」屬性,在PHP中:它在第一次被設置時被初始化,它在執行PHP腳本時保持它的值,但是你可以將它設置爲一個新的值。
6
正確的答案是,在PHP中沒有與final相同的內容,但是靜態的看起來像你想要的東西無論如何。
static具有它將在類的所有實例中具有相同值的屬性,因爲它不受特定實例限制。
您將需要使用::運營商來訪問它,因爲是靜態的,你不能使用- >。
相關問題
- 1. 其他語言中map()(來自處理)的等價物是什麼?
- 2. 什麼是C編程語言中的INKEY $等價物
- 3. Java中靜態{...}的c#等價物是什麼?
- 4. 什麼是PHP的preg_quote的等價物?
- 5. ,有什麼方法的等同物在其他語言
- 6. 什麼是Java的靜態塊的Scala等價物?
- 7. 什麼是PHP var_dump的.NET等價物?
- 8. 什麼是PHP $ _ENV的Ruby等價物?
- 9. 什麼是PHP flush()的Java等價物?
- 10. Yii在其他PHP框架中的庫和Helpers的等價物是什麼?
- 11. 什麼是Java靜態的Smalltalk等價物?
- 12. 與其他語言中的Ruby的method_missing是否等價?
- 13. PHP在類中使用其他變量的靜態變量
- 14. 爲什麼在PHP或其他語言中使用動態變量(變量變量)
- 15. 什麼是VC7中的strtok_s等價物?
- 16. 什麼是Silverlight中的OnRender等價物?
- 17. C#中TreeBidiMap的等價物是什麼?
- 18. 什麼是C#中的vbNullChar等價物?
- 19. MySQL中'go'的等價物是什麼?
- 20. Bash中%%〜nxD的等價物是什麼?
- 21. C#中memset的等價物是什麼?
- 22. Monotouch中的CGPDFDocumentGetCatalog等價物是什麼?
- 23. C#中bigint的等價物是什麼?
- 24. 什麼是android中的dataWithContentsOfURL等價物?
- 25. jquery中Ajax.updater的等價物是什麼?
- 26. url中的「 - 」等價物是什麼?
- 27. TensorFlow中np.std()的等價物是什麼?
- 28. 什麼是Ruby中的「sys.stdout.write()」等價物?
- 29. wxWidgets中UpdateWindow()的等價物是什麼?
- 30. JQuery中innerHTML的等價物是什麼?
從什麼時候你不能更新靜態屬性? – jason 2009-07-29 05:55:57
靜態變量可以修改... – 2009-07-29 05:56:03