<code><?php require_once("DB.php"); class DatabaseConnection { public static function get() { static $db = null; if ( $db == null ) echo '1111'; $db = new DatabaseConnection(); return $db; } private function __construct() { } } var_dump(DatabaseConnection::get()); var_dump(DatabaseConnection::get()); ?> 为什么 结果只输出一次1111 上面的static $db = null这里不是每执行一次get()就重新对$db付值为null了吗,求解下</code>
<code><?php require_once("DB.php"); class DatabaseConnection { public static function get() { static $db = null; if ( $db == null ) echo '1111'; $db = new DatabaseConnection(); return $db; } private function __construct() { } } var_dump(DatabaseConnection::get()); var_dump(DatabaseConnection::get()); ?> 为什么 结果只输出一次1111 上面的static $db = null这里不是每执行一次get()就重新对$db付值为null了吗,求解下</code>
Da der Parameter statisch ist, haben Sie am Ende $db = new DatabaseConnection(); geändert. Tatsächlich hat sich $db beim ersten Mal geändert, also ist er nicht null Wenn Sie mir nicht glauben, ersetzen Sie es durch „statisch öffentlich“, es sollte zweimal erscheinen
Beim zweiten Mal wird $db nicht neu zugewiesen, sondern nur bei der ersten Initialisierung. Bitte beachten Sie die Beschreibung des Dokumentlinks unten
Der Umfang einer Variablen ist der gleiche wie bei einer lokalen Variablen, und der Lebenszyklus ist der gleiche wie bei einer globalen Variablen. static