【发布时间】:2015-08-05 08:14:42
【问题描述】:
我在名为“prog_1.php”的文件中编写了以下代码 sn-p:
<?php
ini_set('display_startup_errors',1);
ini_set('display_errors',1);
error_reporting(-1);
class SimpleClass {
// property declaration
public $var = 'a default value';
// method declaration
public function displayVar() {
echo $this->var;
}
}
$instance = new SimpleClass();
$assigned = $instance;
$reference =& $instance;
var_dump($instance);
echo "\n";
echo $reference; //At this step I'm getting a "Catchable fatal error"
echo "\n";
var_dump($reference);
?>
我的第一个问题是上面代码中的以下行:
echo $reference;
对于此代码行,我收到以下错误:
**Catchable fatal error:** Object of class SimpleClass could not be converted to string in /var/www/practice/prog_1.php on line 23
我不明白我是否可以 var_dump() 类的对象,那么为什么我不能回应相同的内容?
我的第二个疑问是是否执行以下两条语句:
var_dump($instance);
var_dump($reference);
这两个语句都给了我如下相同的输出:
object(SimpleClass)#1 (1) {
["var"]=>
string(15) "a default value"
}
为什么会这样?对象和引用之间没有区别吗?以上输出中的#1 是什么意思?
希望有人能以简单、易懂和明快的语言为我提供令人满意且一流的答案,从而消除我的上述疑虑。
提前致谢。
【问题讨论】:
-
为什么我不能重复相同的内容? -> 见__toString()
标签: php class oop object var-dump