php代码没有执行?

时间:2010-01-15 14:14:53

标签: php oop

<?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:~$ 

7 个答案:

答案 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();

?>