简单的PHP类

时间:2016-11-08 13:54:01

标签: php

我正在学习php并创建了以下课程,但我似乎无法弄清楚为什么它会给我以下错误:

144

  

警告:缺少setters :: set_a()的参数1,在第19行的C:\ xampp \ htdocs \ php \ accessmod2.php中调用,并在C:\ xampp \ htdocs \ php \ accessmod2.php中定义9

     

注意:未定义的变量:第11行的C:\ xampp \ htdocs \ php \ accessmod2.php中的值

<?php

class setters{
    private $a = 144;
    public function get_a(){
        return $this->a;
    }

    public function set_a($value){

        $this->a = $value;
    }
}

$example = new setters();

echo $example->get_a()."<br />";
$example->set_a(15)."<br />";
echo $example->set_a()."<br />";

?>

4 个答案:

答案 0 :(得分:3)

您必须使用set()函数的参数。但在你的情况下,我认为你只想看看set()函数是否有效。因此,请使用get()函数。

所以改为:

echo $example->get_a()."<br />";
$example->set_a(15)."<br />";
echo $example->get_a()."<br />";

结果是:

144
15

答案 1 :(得分:0)

检查你的最后一行:

echo $example->set_a()."<br />";

set_a()需要一个参数,但它是空的。如果你这样改变它,它将起作用:

echo $example->set_a('someparameterhere')."<br />";

答案 2 :(得分:0)

您对->set_a的第二次电话需要一个参数:

<?php

class setters{
    private $a = 144;
    public function get_a(){
        return $this->a;
    }

    public function set_a($value){

        $this->a = $value;
    }
}

$example = new setters();

echo $example->get_a()."<br />";
$example->set_a(15)."<br />";
$example->set_a(23)."<br />"; // ◄■■■ PARAMETER FOR "SET_A".

?>

您还可以使用&#34;可选&#34;参数:

<?php

class setters{
    private $a = 144;
    public function get_a(){
        return $this->a;
    }

    public function set_a( $value = -1 ){ // ◄■■■ OPTIONAL PARAMETER.

        $this->a = $value;
    }
}

$example = new setters();

echo $example->get_a()."<br />";
$example->set_a()."<br />"; // ◄■■■ OPTIONAL PARAMETER ($a = -1).
echo $example->get_a()."<br />"; // ◄■■■ NEW VALUE = -1.
?>

答案 3 :(得分:0)

您正在呼叫set_a 两次

设置完成后,您需要调用get_a来显示值。

echo $example->get_a()."<br />";
$example->set_a(15)."<br />";
echo $example->get_a()."<br />";