• php学习笔记6--php中的文件包含 include,require,include_once,require_once


    php中的文件包含 include,require,include_once,require_once

    文件包含:是指将一个文件的内容包含进另外一个文件,有利于代码的复用等。
    php中文件包含指令有4个,分别为:
    include,include_once,require,require_once
    其中:include和require:使用一次便包含一次文件;而include_once和require_once则是:不管在一个脚本中包含
    另外一个脚本多少次,都只加载一次,不会重复,这样可以避免因一个文件的重复包含,导致的函数重定义等问题。
    include_once和require_once在包含文件之前会做一次判断,判断当前需要包含的文件是否已经被包含过了,如果
    已经包含过了就放弃包含,否则就包含进来。

    include和require的区别是:include会尝试着去包含,如果包含不到,会提示警告错误,但是不会影响当前自身脚
    本的执行;require一定会去包含文件,而且包含的文件必须不能出错,否则会终止当前自身脚本的执行。

    关于文件包含的使用,php帮助手册中提到有些需要注意的地方,可以帮助理解文件包含的机制,从而避免不必要的
    麻烦:
    1.被包含文件先按参数给出的路径寻找,如果没有给出目录(只有文件名)时则按照 include_path 指定的目录寻找
    。如果在 include_path 下没找到该文件则 include 最后才在调用脚本文件所在的目录和当前工作目录下寻找。如
    果最后仍未找到文件则 include 结构会发出一条警告;这一点和 require 不同,后者会发出一个致命错误。
    2.当一个文件被包含时,其中所包含的代码继承了 include 所在行的变量范围。从该处开始,调用文件在该行处可
    用的任何变量在被调用的文件中也都可用。不过所有在包含文件中定义的函数和类都具有全局作用域。
    3.如果 include 出现于调用文件中的一个函数里,则被调用的文件中所包含的所有代码将表现得如同它们是在该函
    数内部定义的一样。所以它将遵循该函数的变量范围。此规则的一个例外是魔术常量,它们是在发生包含之前就已被
    解析器处理的。
    4.在失败时 include 返回 FALSE 并且发出警告。成功的包含则返回 1,除非在包含文件中另外给出了返回值。可以
    在被包括的文件中使用 return语句来终止该文件中程序的执行并返回调用它的脚本。同样也可以从被包含的文件中返
    回值。可以像普通函数一样获得 include 调用的返回值。
    5.因为 include 是一个特殊的语言结构,其参数不需要括号。在比较其返回值时要注意:
    if (include('vars.php') == 'OK') { // won't work, evaluated as
    echo 'OK' ; // include(('vars.php') == 'OK')
    }
    if ((include 'vars.php') == 'OK') { // works
    echo 'OK' ;
    }
    6.如果在包含文件中定义有函数,这些函数不管是在 return之前还是之后定义的,都可以独立在主文件中使用。如果
    文件被包含两次,PHP 5 发出致命错误因为函数已经被定义,但是 PHP 4 不会对在 return之后定义的函数报错。推荐
    使用 include_once 而不是检查文件是否已包含并在包含文件中有条件返回。
    7.当一个文件被包含时,语法解析器在目标文件的开头脱离 PHP 模式并进入 HTML 模式,到文件结尾处恢复。由于此
    原因,目标文件中需要作为 PHP 代码执行的任何代码都必须被包括在有效的 PHP 起始和结束标记之中。
    ps:我的理解是,包含文件时,会把被包含的整个文件原样放在目标文件中,然后才去解析,基于以上第3点,可知,
    魔术常量是在此之前解析的,是个例外。

  • 相关阅读:
    java 多线程 继承Thread和实现Runnable的区别
    TCP和UDP的区别
    重载与覆盖(java)
    感悟
    ant design + react带有二级导航菜单自动生成
    自己搭建ant design框架
    ant design框架学习
    radio美化
    nodejs-微信公众号 ----答疑机器人
    微信小程序----开发小技巧(二)
  • 原文地址:https://www.cnblogs.com/dqrcsc/p/4390997.html
Copyright © 2020-2023  润新知