php require函数-金沙1005

php require函数_phparray谈到了使用require_once仍然告诉说类被重定义的问题,于是想起了前几天自己遇到的现象,在这里和大家说一下,今天才想起调查具体原因,如果大家不说的话就快忘了,看来自己凡事果然不经大脑,大脑的二级缓存,及内存,甚至是硬盘都小的可怜。假设有如下三个文件,c.phpa.phpb.php对应的存放目录为:localhost/localhost/localhost/democ.phprequ…

谈到了使用require_once 仍然告诉说类被重定义的问题,于是想起了前几天自己遇到的现象,在这里和大家说一下,今天才想起调查具体原因,如果大家不说的话就快忘了,看来自己凡事果然不经大脑,大脑的二级缓存,及内存,甚至是硬盘都小的可怜。

假设有如下三个文件,c.php a.php b.php 对应的存放目录为:localhost/localhost/ localhost/demo

c.php

require_once(“a.php”);

require_once(“demo/b.php”);

b::demo();a.php

classa

{

}

b.php的内容比较有意思,因为它自己要继承 class a 所以自己把a.php也引入进去了,代码如下:

require_once(“../a.php”);

classbextendsa

{

publicstaticfunctiondemo()

{

echo”xx”;

}

}

执行localhost/c.php 系统报错,报错信息如下

warning: require_once(../a.php) [function.require-once]: failed to open stream: no such file or directory in f:wwwdemob.php on line 2

fatal error: require_once() [function.require]: failed opening required ‘../a.php’ (include_path=’.;c:php5pear’) in f:wwwdemob.php on line 2但是,惊奇的发现,如果去掉b.php里面的require_once语句,执行正常,那么一定是require_once语句定义多了吗?原因就是class a重定义了两次?可是不会啊。如果我只在c.php里面加require_once(‘a.php’);这条语句,哪怕我写两遍也是没错的,那到底是咋回事呢?

原因就是,b.php定义的目录和c.php执行文件的目录层级不一致,导致在c.php里面require_once语句有两条。使其相当于

require_once(“a.php”);

require_once(“../a.php”);

classbextendsa

{

publicstaticfunctiondemo()

{

echo”xx”;

}

}

b::demo();

原因找到了,因为在c.php里面,其相对目录 “..”就是 c.php的上一层了,导致文件找不到报错。

所以,我们的结论是,在 php 里面,使用require_once的时候,存在不同层级关系,且有相对目录的使用那么一定要谨慎,小心。

(责任编辑:admin)

js555888金沙老品牌的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/141835.html

(0)

相关推荐

  • php日志打印_php日志无格式php设置日志输出的方法:使用php的写入文件函数,把数据写入到事先定义好的文件中,代码为【file_put_contents(file,data,mode,context)】。

  • php 分页 代码_html分页$page=0;页数$pagesize=20;每页多少数据(20条)$page_num=ceil($num/$pagesize);$num总条数除以每页条数ceil向上取整$page=input(‘post.page’);if($page>=$page_n…

  • php foreach的用法详解「建议收藏」php foreach的用法:1、通过语法“foreach (array_expression as $value)”进行使用;2、通过语法“foreach (array_expression as $key => $value)”。

  • phpstorm2020.3永久激活_phpstorm永久激活方法(phpstorm许可证服务器)2022最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~intellij2…

  • php argv_sessionphp用法php中,“$argv”用于存放指向字符串的参数,是传递给脚本的参数数组,每一个元素指向一个参数,第一个参数总是当前脚本的文件名;“$argv”被定义在“$_server”全局数组中,仅在“register_argc_argv”打开时可用。

  • php怎么移除数组元素php移除数组元素的方法:可以利用array_splice()函数来实现。array_splice()函数从数组中移除选定的元素,并用新元素取代它,同时返回包含被提取元素的数组。

  • php 随机数设置[通俗易懂]$addnum=rand(“1″,”30”);范围:1到30

  • php开启mysqli扩展_mysql横向扩展php无法开启mysql扩展的解决方法是,编辑php.ini配置文件,去掉php_pdo_mysql.dll前面的分号。然后在php.ini文件中设置扩展目录。最后在apache配置文件中添加php路径即可。

发表回复

您的电子邮箱地址不会被公开。

联系金沙1005

关注“java架构师必看”公众号

回复4,添加站长微信。

附言:ispacesoft.com网而来。

关注微信
网站地图