---恢复内容开始---
1.静态局部变量的特点:
1)不会随着函数的调用和退出而发生变化,不过,尽管该变量还继续存在,但不能使用它。倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值
2)静态局部变量只会初始化一次
3)静态属性只能被初始化为一个字符值或一个常量,不能使用表达式。即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变量);静态变 量的初始值为0。
4)当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用 局部静态变量为宜。
静态局部变量可以声明为空数组
1 protected function getAuthList($uid, $type) 2 { 3 static $_authList = array(); //保存用户验证通过的权限列表 4 $t = implode(',', (array) $type); 5 if (isset($_authList[$uid . $t])) { 6 return $_authList[$uid . $t]; 7 } 8 }
2.PHP strpos() 函数
查找 "php" 在字符串中第一次出现的位置:
<?php echo strpos("You love php, I love php too!","php"); ?>
运行结果:9
---恢复内容结束---
1.静态局部变量的特点:
1)不会随着函数的调用和退出而发生变化,不过,尽管该变量还继续存在,但不能使用它。倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值
2)静态局部变量只会初始化一次
3)静态属性只能被初始化为一个字符值或一个常量,不能使用表达式。即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变量);静态变 量的初始值为0。
4)当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用 局部静态变量为宜。
静态局部变量可以声明为空数组
1 protected function getAuthList($uid, $type) 2 { 3 static $_authList = array(); //保存用户验证通过的权限列表 4 $t = implode(',', (array) $type); 5 if (isset($_authList[$uid . $t])) { 6 return $_authList[$uid . $t]; 7 } 8 }
2.PHP strpos() 函数
查找 "php" 在字符串中第一次出现的位置:
<?php echo strpos("You love php, I love php too!","php"); ?>
运行结果:9
3.spl_autoload_register()函数
__autoload($class_name):自动加载函数,当新创建对象的时候,无需写类的命名空间。在php5中,试图使用尚未定义的类时会自动调用__autoload函数,所以我们可以通过编写__autoload函数来让php自动加载类,而不必写一个长长的包含文件列表
spl_autoload_register(),这个函数与__autoload有与曲同工之妙,意思是实例化对象而找不到对应的类时可以自动调用自己编写的加载函数,区别于__autoload,注册类的自动加载函数如:
<?php
spl_autoload_register(function($class){
if($class == 'http'){
require_once("/home/yejianfeng/handcode/http.php");
}
});
$a = new http();
在框架中使用此函数可以只使用命名空间即可找到对应的类