PHP中__autoload()函数的使用
我们知道在PHP4里面,当我们使用一个类的时候,必须将该类所以文件使用include或require加进来,这样我们就可以使用类了。
而对于PHP5来说也可以使用在PHP4里面的方式,将类文件包进来,但当有了__autoload之后,这种情况就可以靠编写规则也实现。
以下代码:
<?php
$obj_A = new clsA();
$obj_B = new clsB();
?>
PHP4下正确写法为:
<?php
//PHP4 写法,之前必须加载类文件
include_once "cls/clsA.php";
include_once "cls/clsB.php";
$obj_A = new clsA();
$obj_B = new clsB();
?>
处理加载步骤为:
1,加载类文件。
2,实例化类。
PHP5下使用__autoload()(自动加载)的正确写法为:
<?php
// PHP5 Used __autoload function
$obj_A = new clsA();
$obj_B = new clsB();
function __autoload($className){
include_once "cls/$className.php";
}
?>
处理加载步骤为(使用autoload函数):
1,创建对象(伪实例)
2,调用__autoload函数,将伪实例的类名传入
3,使用__autoload函数中,预先写好的加载规则进行加载类文件
4,实例化对象(真实实例)
因此,我们可以看出,对于PHP5的autoload函数,必须给定规则,否则一点用没有。
对于PHP5的__autoload函数的使用时需要注意或完成如下事情。
1,__autoload函数是用在类外面,而不是在类里面的函数。(__autoload也是被PHP5保护的关键字之一)
2,完成对__autoload函数加载规则的编码。
如上,当知道A是在cls目录中,而B是在cls/cls目录中。则编写__autoload加载规则就是必要的。
<?php
// PHP5 Used __autoload function
$obj_A = new clsA(); // in "cls" directory!
$obj_B = new clsB(); // in "cls/cls" directory!
function __autoload($className){
if(strtolowwer($className) == "clsb"){
require_once "cls/cls/$className.php";
}else{
include_once "cls/$className.php";
}
}
?>
总结:因此,对
相关文档:
Php Variable Circular References
Circular-references has been a long outstanding issue with PHP. They are
caused by the fact that PHP uses a reference counted memory allocation
mechanism for its internal variables. This causes problems for longer
running scripts (such as an Applicatio ......
PHP中类的方法也和C++通过关键字 private
、Public
、 protected
来控制的。下边是详细说明:
1、private
函数前使用关键字Private表示函数是私有的,私有的意思顾名思义,针对当前类私有,无论是他的子类还是他的实例都无法访问。
还是先看代码:
&nbs ......
php常用类整理
时间:2009-12-19 20:45 来源:人力方 作者:syuanq 点击:548
在实际开发过程会经常会遇到一些重复的操作,如果每次都要自己去实现这无疑加重了自己的工作量,下面对一些可能经常用到的类做个整理:
图表库
下面的类库可以让你很简单就能创建复杂的图表和图片。当然,它们需要GD库的支持 ......
转载请注明出处: http://www.zvv.cn/blog/show-101-1.html
前些天发现通过Notepad++的DBGP插件结合PHP的xdebug扩展可以实现PHP文件调试,同时,介绍说包含了单步调试、监视变量还有跨 文件调试。按照网络上的资料配置好调试环境后实际试用了发现功能较为简陋,单文件调试还可,如果是跨文件调试项目就不那么舒服了, ......
AddSlashes: 字符串加入斜线。
bin2hex: 二进位转成十六进位。
Chop: 去除连续空白。
Chr: 返回序数值的字符。
chunk_split: 将字符串分成小段。
convert_cyr_string: 转换古斯拉夫字符串成其它字符串。
crypt: 将字符串用 DES 编码加密。
echo: 输出字符串。
explode: 切开字符串。
flush: 清出输出缓冲区。
get ......