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

我在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’ 作为参数传入的?

  • php自定义路由
  • php 数组 如何将 1,2,4,5,6,7,9,11 优雅的转换为 ‘1,2,4-7,9,11’ 这样的字符串呢?
  • PHP如何调用R语言的函数,像调用C语言的函数那样
  • 搜索联想功能数据库如何设计?
  • 关于php函数addslashes的一些小疑问
  • 有什么好的方法可以生成十万条不重复的13位纯数字字符串
  • php返回json数据的demo如下,请问是什么原因导致该问题?
  • testaa
  • System.Text.Encoding.UTF8.GetBytes C# 轉 php
  • Linux上php.ini中extension前面都有分号(注释),怎么扩展都能用呢?
  • 关于swoole为什么渲染内容需要ob_*系列