PHP中多个文件包含的问题 (一)
2023-09-14 08:56:53 时间
使用require或者include来包含文件时,包含的文件的内容相对性,这个很容易搞混,所以记录一下。
这个相对性包括
__DIR__,__FILE__,$_SERVER['PHP_SELF'],$_SERVER['SCRIPT_NAME']
比如看下面的例子:
- test/
- dir1
- a.php
- dir2
- b.php
- index.php
- dir1
文件层级结构如上:
访问dir2/b.php,输入内容如下:
aaaaaa dir: /Library/WebServer/Documents/test/dir1 file: /Library/WebServer/Documents/test/dir1/a.php php_self: /test/dir2/b.php script_name: /test/dir2/b.php aaaaaaa bbbbbbb dir: /Library/WebServer/Documents/test/dir2 file: /Library/WebServer/Documents/test/dir2/b.php php_self: /test/dir2/b.php script_name: /test/dir2/b.php bbbbbbb
从上面的例子中可以得出下面的结论:
1、无论A文件是否被包含进其他文件中,在该A文件中的__DIR__始终是该A文件真实的所在目录名,只要文件的位置不变,__DIR__值就不会改变,不会变成包含他的那个文件,即使执行的是包含他的那个文件。
2、无论A文件是否被包含进其他文件中,在该A文件中的__FILE__始终是该A文件真实的所在文件名,只要文件名不变,__FILE__值就不会改变,不会变成包含他的那个文件,即使执行的是包含他的那个文件。
3、$SERVER全局数组中的PHP_SELF和SCRIPT_NAME的值始终是直接运行的那个文件名,即你访问的哪个文件,这两个变量的值就是那个文件名,不会是包含的某个文件名。
相关文章
- php 把数组保存为标准的数组格式,存储到文件中
- Linux基于libmemcached,php扩展memcached的安装
- PHP同时上传“多个”文件示例,并格式化$_FILES数组信息
- PHP判断变量是否存在及函数isset() 、empty()与is_null的区别
- 移动端与PHP服务端接口通信流程设计(增强版)
- Windows下图文详解PHP三种运行方式(php_mod、cgi、fastcgi)
- php glob()函数实现目录文件遍历与寻找与模式匹配的文件路径
- php获取目录文件夹下的内容,可用于读取目录文件
- php+tcpdf如何把生成的pdf文件保存在服务端
- PHP读取大文件的几种方法介绍
- PHP fastcgi模式大文件上传500错误
- php手册总结《类》
- php分享(三十五) 文件多写注意事项
- thinkphp6:访问多个redis数据源(thinkphp6.0.5 / php 7.4.9)
- PHP 读取大文件
- LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
- [PHP] 浅谈 Laravel Scout 的存在意义
- PHP查询登录中的sql注入
- [转]XCache 3.0.0 发布,PHP 性能提升方案
- Atitit. 解压缩zip文件 的实现最佳实践 java c# .net php
- PHP EOF(heredoc) 使用说明
- PHP面试题:mysql_fetch_row() 和mysql_fetch_array之间有什么区别?
- 关于 php json float 出现很多位的问题
- 3. php反序列化从入门到放弃(入门篇)
- php安装kafka扩展
- php开启子进程处理