⑴ php求助 static修饰的变量不是只运行一次吗图里面为什么运行2次
static静态变量只被初始化一次,是函数或类的内部保存值
这里,相当于你的newfile.php执行结束之前,$temperature=25;只会被初始化一次。
即第一次调用ee()时$temperature初始化为25,
第二次调用ee()时,$temperature没有在被重新初始化,而是沿用函数内部的保存值25
你可以在static$temperature=25后面加两句,
++$temperature;echo$temperature.'<br/>';
在运行会打印26和27
ee()函数执行了多少次,就会在25上加多少
因为$temperature只有第一次被初始化为25,后面都是沿用之前运算后的值
⑵ 谁知道PHP中静态变量是什么意思急!
静态变量,简单的说,就是一种在特定范围内一直存在的变量,你可以把全局变量当作一种静态变量,它的值在代码运行期间一直存在。
通常来说,静态局部变量大多用于特殊场合里,比如,当在某函数中,希望每次运行函数时,都使用上次函数的结果,此时除使用全局变量外,就可以使用静态变量。
以下是关于静态局部变量特点的一些资料说明:
1.不会随着函数的调用和退出而发生变化,不过,尽管该变量还继续存在,但不能使用它。倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值。
2.静态局部变量只会初始化一次。
3.静态属性只能被初始化为一个字符值或一个常量,不能使用表达式。即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变量);静态变量的初始值为0。
4.当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。
PHP里,定义静态变量使用static 进行修饰。比如
static$avar=0;
⑶ 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++;
}
?>
⑷ static静态变量和普通变量,静态函数和普通函数
static变量和普通变量的区别 :
在于 非静态全局变量的作用域 是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。
静态全局变量则限制了其作用域 , 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。
static全局变量和普通全局变量 :static全局变量只初始化一次,房子其他文件中再被引用。
static局部变量和普通局部变量的区别侍告 :static再内存中只有一份,普通函数每次被调用一次拷贝一次。
全局静态变量再声明其之外是不可见的,作用于,从程序开头到结尾
不会被其他文件说访问,修改其他文件相同名字的变量不会被修改。
2. 使用 :
static用来定义方法和属性,只有函数被第一次调用是否才会被初始化,但是可以不可以跟表达式和亮雀函数值。
(1)静态属性不需要实例化即可调用。因为静态属性存放的位置是在类里,调用方法为"类名::属性名";
(2)静态方法不需要实例化即可调用。也就是说不能在静态方法中访问普通的成员变量
(3)静态敬谈早方法不能调用非静态属性。因为非静态属性需要实例化后,存放在对象里;
(4)静态方法可以调用非静态方法,使用 self 关键词。php里,一个方法被self:: 后,它就自动转变为静态方法;*
另外,self和static的区别:
例子:如果之类对父类进行重写,那么static会访问子类的属性,而self仍然只会访问原类下的属性
⑸ 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没有被释放,它将被继续累加