Heim  >  Artikel  >  Backend-Entwicklung  >  关于include中使用define的有关问题

关于include中使用define的有关问题

WBOY
WBOYOriginal
2016-06-13 13:04:34845Durchsuche

关于include中使用define的问题
a.php

<br />
<?php<br />
  define( 'PATH',dirname(__FILE__));<br />
  include('./index.php');<br />
  .<br />
  .<br />
  .<br />
?>


b.php
<br />
<?php<br />
  include(../a.php);<br />
  echo PATH;<br />

其中a.php和index.php在同一个文件夹,而b.php在a.php的父文件夹中。
    运行上面b.php,结果提示错误,说include()函数fial to open index.php,然后输出了PATH,而PAHT的值时a.php的绝对路径。
    这是怎么一回事,如果说include函数的工作机制是把文件不做任何处理就包括进来,那么PATH的值应该是b.php的绝对路劲;如果说include函数先要对一些函数做处理后在包括进来,那include('./index.php');问什么又不执行呢?究竟include和define的工作机制是怎样的?求高手
------最佳解决方案--------------------
include 与 define 有什么关系 ,a.php 的当前目录下有index.php 吗

2. 你的常量PATH 是在 a.php 定义的,取的当然是a.php 的绝对路径
------其他解决方案--------------------
用  include('index.php');  //试试
------其他解决方案--------------------

引用:
用  include('index.php');  //试试


a.php和index.php在同一个文件夹,然后我就改成了include('index.php')就可以了,这是为什么呢?
' .'不是表示当前路劲下,‘./index.php’和'index.php'不是一样的吗?
还有include的工作机制究竟是怎样的?
------其他解决方案--------------------
《PHP中include路径的解决方法汇总》这篇博客文章似乎解决了我的问题了。原来问题出现在__FILE__这里,文章提到“__FILE__ always equals to the real path of a php script regardless whether it's included.” __FILE__的值总是与使用它的文件的路径一样,而不管这个文件是否被包含。所以才出现我说的情况。同时也说明了include路径是一个危险的问题!!!!!
------其他解决方案--------------------
当你访问a.php 时是相对于a.php的,因此 ./index.php 和index.php 都是可以的,但是如果你访问b.php 时,此时应该是相对于b.php , 所以./index.php 就不对了,要../index.php 或者 index.php 才行  ,我是这么理解的。
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn