我正在学习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 />";
?>
答案 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 />";