Web*_*urk 8 php static-variables
这是我想要完成的简化版本:
在我的脚本中,我希望每次执行脚本时都会更改true和false的变量.
<?php
static $bool = true;
// Print differente messages depending on $bool
if( $bool == true )
echo "It's true!";
else
echo "It's false!";
// Change $bools value
if( $bool == true )
$bool = false
else
$bool = true;
?>
Run Code Online (Sandbox Code Playgroud)
但显然我正在做的事情是错的.变量$bool是不断的true,我还没有完全掌握我认为的静态变量的概念.我究竟做错了什么?
Pat*_*and 16
PHP无法在请求之间保留变量值.这意味着每次调用脚本时,$bool-variable都将设置为true.如果你想保持你必须使用的请求之间的值,sessions或者如果你想在会话之间共享变量,那么一些缓存机制就像APC或Memcache.
此外,static在PHP中用于声明在类级别共享的变量.因此它在类中使用,并像self::$variableName;或或访问Foo::$variableName
你可以阅读更多关于静态属性在这里.来自文档:
将类属性或方法声明为静态可使它们无需实例化类的实现.声明为static的属性无法使用实例化的类对象访问(尽管静态方法可以).
此外,请注意,static自PHP 5.3以来,该单词已经过载,并且还可以用于表示Late Static Binding,使用static::