这里有新鲜出炉的 PHP 面向对象编程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
require() 语句的性能与 include() 相类似,都是包括并运行指定文件。不同之处在于:对 include() 语句来说,在执行文件时每次都要进行读取和评估;而对于 require() 来说,文件只处理一次(实际上,文件内容替换 require() 语句)。
最近有小伙伴,提问了有关于 require_once 的有关问题,对于程序中遇到的问题,无聊难度大小,只要 bug 存在就还值得我们去探索,去解决。针对这个问题,我把 include 和 require 的详细用法进行归纳。(结合查阅资料和自己的理解,整合出来的)希望能给有需要的小伙伴一点帮助。
引入文件:
首先需要一个 php 文件:
- <?php
- class shao//类名必须和文件名相同!!!
- {
- public $xxx="666";
- }
- $shili = new shao();
- echo $shili->xxx;
- ?>
引用:
- <?php
- //引入文件
- include "shao.php";//引用文件;只能引用一遍
- //引用多个则费劲
- //include_once("shao.php");//一次又一次
- //也可以require ("shao.php");
- ?>
其中 include 与 require 的区别:
require:
执行到 require()时,只会读取一次档案,故常放在程序开头,档案引入后 PHP 会将网页档重新编译,让引入档成为原先网页的一部分。
require() : 无条件包含,如果文件不存在,会报出一个 fatal error. 脚本停止执行
require 遇到错误时,直接报错并停止运行程序
include:
执行到 include()时,每次皆会读取档案,故常用于流程控制的区段,如条件判断或循环中。
include() : 有条件包含,如果文件不存在,会给出一个 warning,但脚本会继续执行
include 遇到错误时(引用的文件不存在),PHP 只是报错,但程序会继续运行下去
以下为补充:
1. include 有返回值,而 require 没有。
2. include() 包括并运行指定文件 在处理失败时 include() 产生一个警告, 被导入的程序代码都会被执行,而且这些程序在执行的时候会拥有和源文件中呼叫到 include() 语句的位置相同的变量范围。你可以导入同一个服务器中的静态页面。
3. include_once() 的作用和 include() 是几乎相同的 唯一的差别在于 include_once() 会先检查要导入的档案是不是已经在该程序中的其它地方被导入过了,如果有的话就不会再次重复导入(这项功能有时候是很重要的,比方说要导入的里面宣告了一些你自行定义好的函数,那么如果在同一个程序重复导入这个文件,在第二次导入的时候便会发生错误讯息,因为 PHP 不允许相同名称的函数被重复宣告第二次)。
4. require() 会将目标文件的内容读入,并且把自己本身代换成这些读入的内容 在处理失败时 require() 则导致一个致命错。 这个读入并且代换的动作是在 PHP 引擎编译你的程序代码的时候发生的,而不是发生在 PHP 引擎开始执行编译好的程序代码的时候(PHP 3.0 引擎的工作方式是编译一行执行一行,但是到了 PHP 4.0 以后就有所改变了,PHP 4.0 是先把整个程序代码全部编译完成后,再将这些编译好的程序代码一次执行完毕,在编译的过程中不会执行任何程序代码)。require() 通常来导入静态的内容,而 include() 则适合用导入动态的程序代码。
5. 如同 include_once(),require_once() 会先检查目标文件的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。
6. require 是无条件包含也就是如果一个流程里加入 require, 无论条件成立与否都会先执行 require。
7. require 通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。
8. include 一般是放在流程控制的处理部分中 PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式可以把程序执行时的流程简单化。
推荐使用 require_once() 和 include_once(),可以检测文件是否有重复包含。
自动加载:
被引用的 php 文件:
- <?php
- class shao//类名必须和文件名相同!!!
- {
- public $xxx="666";
- }
- ?>
自动加载:
- <?php
- function __autoload($asd)
- {
- require $asd.".php";//可填地址查找
- }
- $shili = new shao();
- echo $shili->xxx;
- ?>
来源: http://www.phperz.com/article/17/0808/340537.html