我想知道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++中的C#靜態實例的等價物?
- 3. 什麼是perl中$ _的php等價物?
- 4. 什麼是C編程語言中的INKEY $等價物
- 5. Kotlin中Java靜態最終字段的等價物是什麼?
- 6. Java中靜態{...}的c#等價物是什麼?
- 7. 什麼是PHP的preg_quote的等價物?
- 8. ,有什麼方法的等同物在其他語言
- 9. 什麼是Java的靜態塊的Scala等價物?
- 10. 什麼是BufferedInputStream(Java語言)的C#/ .NET等價物?
- 11. 什麼是PHP var_dump的.NET等價物?
- 12. 什麼是PHP $ _ENV的Ruby等價物?
- 13. 什麼是PHP flush()的Java等價物?
- 14. Yii在其他PHP框架中的庫和Helpers的等價物是什麼?
- 15. 什麼是Java靜態的Smalltalk等價物?
- 16. 與其他語言中的Ruby的method_missing是否等價?
- 17. 什麼是PHP類的break語句的等價物?
- 18. php初始化靜態變量與其他靜態變量
- 19. 什麼是動態SQL中Oracle綁定變量的SQL Server等價物?
- 20. PHP在類中使用其他變量的靜態變量
- 21. 爲什麼在PHP或其他語言中使用動態變量(變量變量)
- 22. 什麼是android中的dataWithContentsOfURL等價物?
- 23. RDFlib中rdf:ID的等價物是什麼?
- 24. Monotouch中的CGPDFDocumentGetCatalog等價物是什麼?
- 25. 什麼是C++中的instanceof等價物?
- 26. 什麼是VC7中的strtok_s等價物?
- 27. jquery中Ajax.updater的等價物是什麼?
- 28. 什麼是JSP中的sendmail等價物?
- 29. jQuery中Class.create()的等價物是什麼?
- 30. python中'gem'的等價物是什麼?
從什麼時候你不能更新靜態屬性? – jason 2009-07-29 05:55:57
靜態變量可以修改... – 2009-07-29 05:56:03