php中导入未包含的php文件有4种用法:
include(*.php) ,include_once(*.php) , require(*.php) , require_once(*.php) 四者的作用如下:
1.include()函数会将指定的档案读入并且执行里面的程序。
例如:include(‘/home/me/myfile’);
被导入的档案中的程序代码都会被执行,而且这些程序在执行的时候会拥有和源文件中呼叫到include()函数的位置相同的变量范围(variable scope)。你可以导入同一个服务器中的静态档案,甚至可以通过合并使用include()与fopen()函数来导入其它服务器上面的档案。
2.include_once()函数的作用和include()是几乎相同的
唯一的差别在于include_once()函数会先检查要导入的档案是不是已经在该程序中的其它地方被导入过了,如果有的话就不会再次重复导入该档案(这项功能有时候是很重要的,比方说要导入的档案里面宣告了一些你自行定义好的函数,那么如果在同一个程序重复导入这个档案,在第二次导入的时候便会发生错误讯息,因为PHP不允许相同名称的函数被重复宣告第二次)。
3.require()函数会将目标档案的内容读入,并且把自己本身代换成这些读入的内容。
这个读入并且代换的动作是在PHP引擎编译你的程序代码的时候发生的,而不是发生在PHP引擎开始执行编译好的程序代码的时候(PHP 3.0引擎的工作方式是编译一行执行一行,但是到了PHP 4.0就有所改变了,PHP 4.0是先把整个程序代码全部编译完成后,再将这些编译好的程序代码一次执行完毕,在编译的过程中不会执行任何程序代码)。require()通常来导入静态的内容,而include()则适合用来导入动态的程序代码。
4.如同include_once()函数,require_once()函数会先检查目标档案的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。
最常用的是require_once来导入不同php文件中的类和函数,但实际上每次都要判断是否已经加载等等,其效率较低,但为避免重复加载出错,又不得不如此。对于要导入类库php文件而言,PHP还有一个__autoload($className)来自动导入未知的类。估计是php推崇一个类总要放到一个文件里。
然而,直接覆盖__autoload函数在引入多个类库时是不明智的,如果php版本>5.1.2可以使用
(PHP 5 >= 5.1.2)
bool spl_autoload_register ([ callback $autoload_function ] )
将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活,则激活它们。
欲注册的自动装载函数。如果没有提供任何参数,则自动注册autoload的默认实现函数
如果成功则返回 TRUE,失败则返回 FALSE。
load.php文件
{
static function loadClass($class_name)
{
$filename = $class_name.”.class.php”;
$path = “include/”.$filename
if (is_file($path)) return include $path;
}
}
* 设置对象的自动载入
* spl_autoload_register — Register given function as __autoload() implementation
*/
spl_autoload_register(array(‘LOAD’, ‘autoload’));//引入静态加载函数
spl_autoload_register(‘my_auto_load”);//引入单一加载函数
当一个未知类在php代码中出现时,autoload会依次执行,直到找到加载类为止。
新皮肤挺带感的
\(^o^)/~,浏览网页SEO时,找了一个看着还行,用用再说!不知道怎么把“人品”提高一些,看了些大部分网站都没什么人品,都只zero。
写得不错 ^_^
无头像,无真相…
For reasons unknown i’m ending up with a blank page while i try and post a comment,do you know why is this its going?
Maybe there’s something wrong with the invalid words in your comment.I’m so sorry that and the speed which you connect with my blog maybe not stable