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

      

      

  • 相关阅读:
    过河问题 (Standard IO)
    单词分类 (Standard IO)
    C#综合揭秘——细说多线程(上)
    使用NPOI导入导出标准Excel
    C# 转义字符 ''反斜杠
    ref和out的区别
    抽象类接口的区别
    方法签名
    SQL Server的通用分页存储过程 未使用游标,速度更快!
    SQL Server存储过程Return、output参数及使用技巧
  • 原文地址:https://www.cnblogs.com/-beyond/p/8623016.html
Copyright © 2011-2022 走看看