0

为什么下面的代码不返回值?我只是得到一个空白屏幕。

当我在子类中尝试私有变量 val 时,至少它应该返回一些错误。

class Customer {

    private $instance_count = 0; //private data member
    function sub1(){
         return $this->instance_count++;
    }

}
class CustomerChild extends Customer{
    function sub2(){
         return $this->instance_count++;
    }

}
$CustomerObj = new CustomerChild();
print $CustomerObj->sub2();
4

3 回答 3

2
 private $instance_count = 0; 

改成

 protected $instance_count = 0; 

子类不能访问私有变量。您需要受保护的变量。

另外,您的评论:

//static data member

该变量不是静态的,不确定为什么会有评论。

于 2012-04-20T08:46:43.663 回答
1

原因是,您正在尝试打印 NULL:

var_dump($CustomerObj->sub2());
NULL

print NULL;
//nothing....

有关详细信息,请查看@James 的答案。

于 2012-04-20T08:43:04.803 回答
0

尝试打开登录 php.ini 并创建您指定的文件(对于 Windows):

log_errors = On
error_log = C:\TEMP\PHP.LOG

不要忘记创建文件夹、文件并启用对该文件的写入权限。

于 2012-04-20T08:45:23.680 回答