㈠ php中怎么调用方法中的静态变量
看看下面的实例:
<?php
function Test()
{
$w3sky = 0;
echo $w3sky;
$w3sky++;
}
?>
本函数每次调用时都会将 $w3sky 的值设为 0 并输出 "0"。将变量加一的 $w3sky++ 没有其到效果,因为一旦退出本函数则变量 $w3sky 就不存在了。
要写一个不会丢失本次计数值的计数函数,要将变量 $w3sky 定义为静态(static)的:
如下:
<?php
function Test()
{
static $w3sky = 0;
echo $w3sky;
$w3sky++;
}
?>
㈡ php的静态变量究竟有什么作用
一、静态变量具有这样的特性:
当在某函数里定义一个静态变量后,这个变量不会即使函数退出了,在下次调用这个函数时,它会使用前次被调用后留下的值。
此外,虽然该变量不随函数的退出而继续存在,但函数的外部并不能使用它。
因此,静态变量的应用时机如下:
当多次调用一个函数,且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。
虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。
以下是某应用中的示例代码:
<?PHP
functionTest()
{
static$count=0;
$count++;
echo$count;
if($count<10){
Test();
}
$count--;
}
?>
二、对于类中定义的静态变量来说,简单点说,类的静态成员可以不用实例化而直接使用。
㈢ 请问PHP中的静态变量怎么理解
static 变量是php中的变量作用范围的一个重要特性
静态变量仅在局部函数域中存在且只被初始化一次,当程序执行离开此作用域时,其值不会消失,会使用上次执行的结果
一个普通的变量,如 $message 在它所在的函数执行完之后就被释放了
即第二个function执行10次,每次执行完后,$message变量被释放,所以每次都是1
变量前加了static后,该变量在它所在的函数执行完后不会被释放
即第一个function每次被执行后,static $message没有被释放,它将被继续累加
㈣ php中static 静态变量和普通变量的区别
php中static 静态变量和普通变量的区别:
在变量的前面加上static 就构成了静态变量(static 变量)。
static变量和普通变量的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。
㈤ php父类如何调用子类的静态方法或变量
<?php
classA{
staticpublic$m=1;
staticpublicfunctionm(){
echostatic::$m,'<br/>';
}
staticpublicfunctionn(){
static::n();
}
}
classBextendsA{
staticpublic$m=111;
staticpublicfunctionm(){
parent::m();
}
staticpublicfunctionn(){
echoparent::$m,'<br/>';
}
}
B::m();
B::n();
㈥ PHP中this,self和static的区别
PHP支持类和面向对象结构,PHP的类的静态函数和变量不与任何特定类的实例相关联(换句话说,一个对象)。
相反,静态函数和变量与类定义本身相关联。换言之,一个类的所有实例都共享相同的静态变量。在一个类的方法(函数)的上下文中,静态变量和函数被访问使用self::,在一个类的对象(实例)的上下文中使用其他方法和变量时用this。
静态函数只能使用静态变量,静态函数和变量的引用是通过 self::函数名() 和 self::变量名。上述实例中,静态变量的引用是由类名(exampleClass::$foo),或者self::(self::$foo),当在这个类的静态方法[称为 静态函数()]里使用时。类的正则函数和变量需要一个对象上下文来引用,他们不能脱离对象上下文而存在。对象上下文由$this提供。在上述函数中,$bar 是一个正则变量,所以它被 $obj->bar(上下文使用变量obj) 来引用,或者使用 $this->bar(再次在一个对象的方法里在一个对象上下文中) 来引用。
self 不使用前面的 $,因为 self 不意味着是一个变量而是类结构本身。而 $this 引用一个特定的变量,所以有前面的 $ 。