<?php
class abhi
{
var $contents="default_abhi";
function abhi($contents)
{
$this->$contents = $contents;
}
function get_whats_there()
{
return $this->$contents;
}
}
$abhilash = new abhi("abhibutu");
echo $abhilash->get_whats_there();
?>
我已经将变量内容初始化为默认值和构造函数,为什么值不打印,我应该在这里纠正什么?
看错误,
abhilash@abhilash:~$ php5 pgm2.php
Fatal error: Cannot access empty property in /home/abhilash/pgm2.php on line 13
abhilash@abhilash:~$
答案 0 :(得分:14)
您在函数内部错误地返回变量。它应该是:
return $this->contents
答案 1 :(得分:5)
由于问题标记为“php 5 ”,这里是您的php5 class notation类的示例(即public / protected / private而不是var,public / protected / private函数, __construct()而不是classname(),...)
class abhi {
protected $contents="default_abhi";
public function __construct($contents) {
$this->contents = $contents;
}
public function get_whats_there() {
return $this->contents;
}
}
$abhilash = new abhi("abhibutu");
echo $abhilash->get_whats_there();
答案 2 :(得分:4)
如果我没记错的话,那就是
$this->contents = $contents;
不
$this->$contents = $contents;
答案 3 :(得分:3)
应访问和写入$ this-&gt;内容而不是$ this-&gt; $ contents
答案 4 :(得分:1)
另外,你是不是错过了一个美元符号“echo abhilash-&gt; get_whats_there();”? ($ abhilash-&GT; ..)
答案 5 :(得分:0)
使用$ this-&gt;内容
我起初也有同样的问题
答案 6 :(得分:0)
你遇到问题$: 1.使用$ this-&gt;你不把$放在“ - &gt;”之间并且变量名称为“$”符号,因此您的$ this-&gt; $内容应为$ this-&gt;内容。 2.在你的echo中,当你从实例化的类中调用该函数时,你会忘记$。
所以你的正确代码是:
<?php
class abhi
{
var $contents="default_abhi";
function abhi($contents)
{
$this->contents = $contents;
}
function get_whats_there()
{
return $this->contents;
}
}
$abhilash = new abhi("abhibutu");
echo $abhilash->get_whats_there();
?>