【发布时间】:2013-05-06 09:42:54
【问题描述】:
class A{
static $var = true;
function f(){
}
}
对
class A{
function f(){
static $var = true;
}
}
似乎没有任何区别。使用其中一个有什么优势吗?
请注意,$var 将仅用于f() 函数。我知道如果变量需要在多个函数中使用,则需要在类头中声明它
【问题讨论】:
class A{
static $var = true;
function f(){
}
}
对
class A{
function f(){
static $var = true;
}
}
似乎没有任何区别。使用其中一个有什么优势吗?
请注意,$var 将仅用于f() 函数。我知道如果变量需要在多个函数中使用,则需要在类头中声明它
【问题讨论】:
如果你只在f函数中使用静态变量,那么只有作用域的区别,也就是说只要你不尝试在其他地方使用它就没有区别。
在本地范围内使用时,静态变量值在每个函数调用之间保留。请参阅this page 的静态变量部分。
感谢 insertusernamehere 指出这一点。
【讨论】:
static $var 是一个逻辑错误,即使它是 PHP 引擎允许的
在后面的示例中,您只能在 f 函数中使用 var。另一个可以从类A::var 或A::var 之外的任何地方访问
【讨论】: