重蔚php学习第二十九天——php文件载入的原理

我们通常会在a文件中载入b文件,它的原理其实是:是在a文件载入b文件代码处插入b文件的源代码。而不是去b文件执行。

例1:

文件a

image030

文件b

image032

第二个文件有语法错误,属于编译错误,编译错误会影响整个文件的执行,但我们发现,会输出:first,但没有输出before,什么原因?

原理:

image034

1)读入文件a源代码

2)编译文件a代码

3)运行文件a代码

4)执行echo ‘first’;

5)执行require语句

6)找到目标文件b,并去进行编译

7)将代码插入文件a并执行

8)执行echo ‘second’  结束.

通过以上步骤可以看出,文件包含其实是分开编译的

关于包含文件的返回

在一个项目中,可以将所有相关信息写到某个文件中保存,那么这个文件我们称之为:配置文件

例1:包含配置文件

config.php

image036

demo14.php

image038

例2:在目标文件中使用return返回

image040

可以看出,在目标文件,使用了return关键字后,后面的代码不再执行,也就是说,不再输出“first”,但是主程序后面的代码是执行

在php中,如何终止后面代码的执行

return :停止当前脚本的执行

die   :终止整个脚本的执行 ,输出提示信息

exit       :终止整个脚本的执行

例3:终止脚本执行

demo16.php

image042

demo15.php

image044

关于载入文件的路径问题

关于文件路径的几种表示方式:

绝对路径

d:\server\apache\htdocs\project

相对路径

./   :表示当前路径

../    :表示上一级路径

在现在的操作系统中,每个文件夹下都默认有两个文件(隐藏),表示当前和上一级目录。

文件名

1.php   2.php    3.php   Public/4.php

/ (不建议)

例1:关于使用相对路径

demo17.php

image046

Lesson04/

Public

demo17_1.php

demo17_2.php

demo17.php

demo17_3.php

例2:

demo17.php--àdemo17_1.php-----àdemo17_2.php

主文件包含目标文件,其实就是在主文件中运行。就是将目标文件中的代码插入到主程序中。最终运行的是主文件。所以运行中的路径是相对主文件而言的。

在demo17中包含demo17_1.php,实际上将demo17_1.php文件中的源代码插入至demo17文件中,所以引用demo17_2这个文件的路径应该是相对于demo17而言的。

了解一下:

image048

在大型项目,必须固定当前项目的完整根路径,可以使用以上形式。

关于文件加载的四种方式:

l  require() :包含某个文件

l  include()  :包含某个文件

如果是在布局中包含某个版块的文件,可以考虑使用include,这样即使文件不存在,可以使用@进行错误控制

例1:require与include的区别:

image050

例2:include与include_once的区别   require与require_once的区别

image052

定义了一个公共函数的文件,包含加法与减法运算

包含公共函数文件

image054

如果直接使用include或require,那么说明common.php文件中定义的函数被执行两次,这叫做“函数重定义”,会出现错误,可以使用 _once函数,表示在包含时会自动进行判断,如果当前文件被引用过,则不包含,如果没有引用过,直接包含。

本文来自投稿,不代表科技代码立场,如若转载,请注明出处https://www.cwhello.com/2572.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
上一篇 2017年10月4日 10:27
下一篇 2017年10月5日 21:44

相关推荐

  • PHP开发的最佳SSH应用。

    PHP开发的最佳SSH应用在现代软件开发中,SSH已经成为了一种非常常见的协议,用于保护服务器和计算机之间的数据传输安全。SSH(Secure Shell)是一个网络协议,用于在计算机之间安全地进行数据传输和命令执行。在...

    2023年5月28日
    00
  • 探索php+ajax实现带进度条的大数据排队导出思路

    废话不多说,先上效果图:点击导出,实现点击导出统计完成之后点击确定下面来谈谈实现的思路:前面导出操作简单,从第二个导出操作开始:点击"确定"调用exportCsv函数代码如下:<a class="on&qu...

    2022年6月12日 PHP自学教程
    0137
  • PHP中使用Redis实现ID生成器。

    随着互联网的飞速发展,越来越多的网站和应用程序需要支持海量数据的高效存储与访问,同时,随着数据量的不断增加,各种数据处理需求也变得越来越复杂。为了解决这些问题,开发人员通常需要使用强大的数据处理工...

    2023年5月21日
    01
  • PHP中如何进行打印机和扫描仪应用开发?

    随着信息技术的不断发展,打印机和扫描仪已经成为了现代商务与生活中不可缺少的设备之一。而为了更好地满足用户的需求,开发一款能够优化打印和扫描操作的应用程序,也成为了每个开发者都想要实现的目标。本文将...

    2023年5月17日
    01
  • PHP变量间的传值方式

    总体说明: 1,这里讨论的传值方式是指:一个变量对另一个变量 2,它不仅仅适用于赋值语句,也适用于其他有同样含义的语句,比如:函数的实参到形参 3,传值方式只有2种:值传递,引用传递 4,php中,所有变量,...

    2017年11月4日 PHP自学教程
    0208
  • PHP完善压缩处理类(支持主流的图像类型(jpg、png、gif)

    处理主流的图像类型(jpg、png、gif) Jpg -> imagecreatefromjpeg() Png->imagecreatefrompng() Gif->imagecreatrefromgif()   保存图像的时候: Png--->imagepng() Gif---->imagegif() Jpg...

    2018年9月11日 PHP案例操作
    0334
  • PHP中的测试数据管理工具。

    PHP是一种广泛应用于Web开发的脚本语言,由于其易于学习和扩展性,已经成为大多数Web开发人员的首选语言。随着Web应用程序越来越复杂,测试也变得更加重要。为了成功地测试PHP代码,测试数据是必不可少的。在本文...

    2023年5月28日
    00
  • PHP处理时间和时区需注意以下三点!

    当被问及是否很难处理日期和时区时,超过 50%的开发人员回答“是”。我的猜测是,那些对这项民意调查说“不”的人要么已经明白了这一点,要么他们没有与必须迎合全球用户的平台/应用程序合作。无论如何,我想创建一篇...

    2022年6月21日
    0142

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息