关于PHP的析构函数问题
程序员文章站
2022-06-17 10:01:35
...
直接上代码
class FileTest extends SplFileInfo{
public function __destruct(){
var_dump($this->getRealPath());
}
}
$file = new FileTest('index.php'); //boolean false
new FileTest('index.php'); //'E:\Apache24\htdocs\index.php'
如以上代码所示,同样new一个对象,赋值给变量和没赋值给变量结果却不一样,有人知道原因吗?
回复内容:
直接上代码
class FileTest extends SplFileInfo{
public function __destruct(){
var_dump($this->getRealPath());
}
}
$file = new FileTest('index.php'); //boolean false
new FileTest('index.php'); //'E:\Apache24\htdocs\index.php'
如以上代码所示,同样new一个对象,赋值给变量和没赋值给变量结果却不一样,有人知道原因吗?
我在PHP5.6下跑出的结果:
D:\PHP5.6\php.exe E:\M5\carvincai\test\file.php
bool(false)
bool(false)
能不能再提供一些更详细的信息?
更新:
我修改了一下代码:
getRealPath());
}
}
$file = new FileTest(__FILE__); //boolean false
new FileTest(__FILE__); //'E:\Apache24\htdocs\index.php'
结果:
D:\PHP5.6\php.exe E:\M5\carvincai\test\file.php
string(29) "E:\M5\carvincai\test\file.php"
string(29) "E:\M5\carvincai\test\file.php"
题主你是不是可以再检查一下构造函数里传入的文件名?
php 5.6 环境没问题,结果一致
首先要确保 'index.php' 文件是存在的
你肯定是在同一个环境下面执行了,使用了 'index.php' 作为参数传入的?
推荐阅读
-
mysql - 关于php函数addslashes的一些小疑问
-
yii2 - 关于PHP函数strstr的用法
-
关于在JS里引入PHP文件的有关问题
-
关于php查询数据库记录显示的有关问题
-
PHP的preg_replace函数的有关问题
-
关于php读取文件的性能问题
-
关于在 win2000 下安装 mysql 的一些问题!_PHP教程
-
关于PHP的相似度计算函数:levenshtein的使用介绍_php实例
-
PHP使用empty检查函数返回结果时报Fatal error: Can't use function return value in write context的问题 - 心中的飞梦
-
关于PHP函数声明与调用的一个小疑点