关于PHP的析构函数问题
阿神
阿神 2017-04-10 16:56:15
[PHP讨论组]

直接上代码

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一个对象,赋值给变量和没赋值给变量结果却不一样,有人知道原因吗?

阿神
阿神

闭关修行中......

全部回复(2)
PHP中文网

我在PHP5.6下跑出的结果:

D:\PHP5.6\php.exe E:\M5\carvincai\test\file.php
bool(false)
bool(false)

能不能再提供一些更详细的信息?

更新:

我修改了一下代码:

<?php
/**
 * Created by PhpStorm.
 * User: carvincai
 * Date: 2016/3/7
 * Time: 15:23
 */
class FileTest extends SplFileInfo {
    public function __destruct() {
        var_dump($this->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' 作为参数传入的?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号