无法在类方法

时间:2016-10-14 07:54:01

标签: php

我刚开始使用PHP练习OO编程。最近我遇到了一个问题 我试图在类中声明一个变量,但保持未初始化。稍后在我尝试初始化变量时类的方法内部显示以下错误:

  

未定义的变量:第6行的C:\ wamp \ www \ sample.php中的a

     
    

致命错误:无法访问第6行的C:\ wamp \ www \ sample.php中的空属性

  

以下是我要执行的代码:

<?php
        class Sample{
            public $a;

            function call($b){
                $this->$a = $b;
                echo $a;
            }
        }

        $sam = new Sample();
        $sam->call(5);
    ?>

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

在函数调用中,$ a不存在。只有$ this-&gt; a(在a之前没有$),这是你的“sam”对象的属性,而$ b是一个输入参数。 另外,当您设置属性时,不得使用$ a。使用$ this-&gt; a。 如果你有一个包含类的属性名的变量,你应该使用$ this-&gt; $ a,这意味着$ this-&gt; asdf,如果$ a ='asdf';

答案 1 :(得分:1)

正确的语法是$this->a而不是$this->$a