源码如下:
<?php
define("__DIR__",dirname(__FILE__)."\\");
echo __DIR__;
?>
本来打算获取当前路径,并在后面加上“\”,期望输出结果为:
D:\AppServ\www\01\
但是实际的输出结果为:
D:\AppServ\www\01
请高手指教!!!!
<?php
define("__DIR__",dirname(__FILE__)."\\");
echo __DIR__;
?>
本来打算获取当前路径,并在后面加上“\”,期望输出结果为:
D:\AppServ\www\01\
但是实际的输出结果为:
D:\AppServ\www\01
请高手指教!!!!
虽然用代码对其定义不会报错,但常量是只读的,其值修改不了的
我是在define里面加“\”,并不是在define后才试图修改__DIR__
echo __DIR__;不开窍?
已经说了:__DIR__ 是预定义常量
我是在define里面加“\”,并不是在define后才试图修改__DIR__
就是说 你想定义的 __DIR__ 是PHP5.3之后的版本已经定义好的魔术常量 你再怎么define也没有用
如果5.3之前的 就是会用上define的定义了
哦,知道了,谢谢!但是我还有一个地方不明白:如果将源码改成:
define("__IDIR__",dirname(__FILE__)."\\");
echo constant("__DIR__");
就能输出期望的结果:D:\AppServ\www\01\
既然系统预定义的常量不能更改,为什么采用这种方法就能修改__DIR__呢?
哦,知道了,谢谢!但是我还有一个地方不明白:如果将源码改成:
define("__IDIR__",dirname(__FILE__)."\\");
echo constant("__DIR__");
就能输出期望的结果:D:\AppServ\www\01\
既然系统预定义的常量不能更改,为什么采用这种方法就能修改__DIR__呢?感觉你还是没听懂,你定义一个__IDIR__变量怎么会影响__DIR__的值?都说了__DIR__是预定义常量,不能被改变。你改变得是__IDIR__,这个又不是预定义常量。
哦,知道了,谢谢!但是我还有一个地方不明白:如果将源码改成:
define("__IDIR__",dirname(__FILE__)."\\");
echo constant("__DIR__");
就能输出期望的结果:D:\AppServ\www\01\
既然系统预定义的常量不能更改,为什么采用这种方法就能修改__DIR__呢?感觉你还是没听懂,你定义一个__IDIR__变量怎么会影响__DIR__的值?都说了__DIR__是预定义常量,不能被改变。你改变得是__IDIR__,这个又不是预定义常量。
哦,不好意思,是我写错了,我的源码是这样的:
header("Content-Type:text/html;charset=UTF-8");
define("__DIR__",dirname(__FILE__)."\\");
echo constant("__DIR__");
打印出的结果是:
D:\AppServ\www\01\
疑问依旧是为什么__DIR__的值变了?