• PHP-文件加载


    文件加载

    一、综述:

    有4个文件加载的语法形式(注意,不是函数):

    include,  include_once,  require, require_once;

    他们的本质是一样的,都是用于加载/引入/包含/载入一个外部文件到当前php代码中来。

    他们只在2个方面有细微区别:

    1,如果加载文件失败,则有不同的处理规则;include和require不同

    2,如果加载文件重复,则有不同的处理规则;XXX和XXX_once不同;

    3,他们都是语法结构,而非函数,使用形式可以有两种:

    3.1  include  ‘文件路径’;

    3.2  include (‘文件路径’);

    二、文件路径问题

    不管是哪个载入语法结构,都涉及到文件路径问题。主要有3种情况:

    1, 相对路径:

    就是以“./”, 或“../”,开头的路径。

    ./ 表示当前网页文件的所在位置(文件夹,目录);

    ../ 表示当前网页文件的所在位置的上一级位置(文件夹,目录)

    这种相对位置对一个网站中的所有内容(包括php,html,图片,css,js文件)都有效。

    2,绝对路径:

    有2种绝对路径:

    本地绝对路径:

    window系统: c:/d1/d2/page3.php

    unix系列系统: /d1/d2/page3.php

    网络绝对路径: http://www.abc.com/d1/d2/page4.php

     

    3,只有文件名(无路径)

    在php的include语法(其他3个也一样)中,如果只给出文件名,而没有给出路径,则此时有其内部找到该文件的规则,如下:

    1,首先在系统设置的include目录中查找:

    ①在php.ini配置文件中,有:include_path设定:

      

      可见默认无设定;该设定其实可以设定多个目录,其间用分号分开;系统会按顺序依次找要载入的文件。

    修改php.ini中的include_path为:

             

    ②我们也可以在脚本中设定:

             

    ③我们也可以使用另一个函数来获取当前的include_path的值:

             

    2,上面没找到,在当前执行的网页文件所在目录(所谓当前工作目录)查找:

      所谓当前网页文件,就是地址栏中显示的那个文件名。

    3,上面还没找到,则在当前include命令所在文件的所在目录中查找:

      如果一个文件(A)包含文件B,在文件B中又有include命令包含文件C,此时B中的路径问题就可能发生这种情况。

     

    三、文件载入执行过程

    1、从include语句处退出php脚本模式(进入html代码模式)

    2、载入include语句所设定的文件中的代码,并执行之(如同在当前文件中一样)

    3、退出html模式重新进入php脚本模式,继续之后的代码

    举例:

    4include_yuanli.php中:

     

    page3.php中:

     

    4include_yuanli.php中的代码,相当于:

     

    四、几个区别:

    1、include_once 和include的区别:前者能够保证不会被重复加载

    2、require 和 include的区别:

      如果被包含文件不存在,即引用失败(出错)时,include发出警告并继续执行后续代码,require直接终止。

     

    3、require_once 和 require的区别:前者能够保证不会被重复加载

    五、return关键字

      以前,我们只在函数中出现return关键字,其作用是:结束函数,并可以返回数据;

      return; //单纯结束;

      return $x; //结束,并返回数据$x;

      那么,

    被包含(载入)的文件中的return 关键字也具有同样的作用!

       

      

    结果:

       

    再来看看return返回值的形式:

       

      

    结果为:

       

  • 相关阅读:
    bzoj1415 NOI2005聪聪和可可
    Tyvj1952 Easy
    poj2096 Collecting Bugs
    COGS 1489玩纸牌
    COGS1487 麻球繁衍
    cf 261B.Maxim and Restaurant
    cf 223B.Two Strings
    cf 609E.Minimum spanning tree for each edge
    cf 187B.AlgoRace
    cf 760B.Frodo and pillows
  • 原文地址:https://www.cnblogs.com/wjglm/p/9712872.html
Copyright © 2020-2023  润新知