zoukankan      html  css  js  c++  java
  • PHP中多个文件包含的问题 (一)

      使用require或者include来包含文件时,包含的文件的内容相对性,这个很容易搞混,所以记录一下。

      这个相对性包括

        __DIR__,__FILE__,$_SERVER['PHP_SELF'],$_SERVER['SCRIPT_NAME']

      比如看下面的例子:

    • test/
      • dir1
        • a.php
      • dir2
        • b.php
      • index.php

      文件层级结构如上:

      

      访问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的值始终是直接运行的那个文件名,即你访问的哪个文件,这两个变量的值就是那个文件名,不会是包含的某个文件名。

      

      

  • 相关阅读:
    Linux系统下搭建Gitlab服务器
    Sqlserver数据库表转换成C#实体类
    C# 获取今天,昨天,上周,下周,上月,下月等等一些日期格式【转】
    Funthing
    网页生成海报
    NET 5.0 Swagger API 自动生成MarkDown文档
    说说C# 8.0 新增功能Index和Range的^0是什么?
    tblive-studio vs2019 编译过程记录
    确定已安装的 .NET Framework 版本
    修改CMD默认编码
  • 原文地址:https://www.cnblogs.com/-beyond/p/8623016.html
Copyright © 2011-2022 走看看