2016-11-08 4 views
2

私はphpを学び、以下のクラスを作成したが、それは私に言って以下のエラーが示されるのはなぜ私が把握することができないようしています。シンプルなPHPクラス

144

警告:欠落引数1行目のC:¥xampp¥htdocs¥php¥accessmod2.phpで呼び出され、9行目のC:¥xampp¥htdocs¥php¥accessmod2.phpに定義されているsetters :: set_a()の1

注意:未定義の変数:行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 />"; 

?> 
+2

''エコー$例 - > set_a()は '1を持っていない、パラメータを必要とset_a'。 – Federkun

+2

'function set_a($ value)' < - それはメソッドを呼び出すときに値を提供する必要があります。 '$ example-> set_a()' < - argは指定されていません。 –

+1

おそらく '$ example-> get_a()'を最後の行で呼び出して、前の行の効果を確認することを意味します。 –

答えて

0

あなたの最後の行を確認します。

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

set_a()は、パラメータが必要ですが、それは空です。あなたはこのようにそれを変更した場合、それは動作します:

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

->set_aへのあなたの2番目の呼び出しは、パラメータを必要とします。

<?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". 

?> 

あなたはまた、 "オプション" パラメータを使用することができます

<?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. 
?> 
0

set_aを2回と呼んでいます。

設定後、値を表示するにはget_aに電話する必要があります。

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

set()関数のパラメータを使用する必要があります。しかし、あなたの場合、私はちょうどset()機能が働いているかどうかを見たいと思うと思います。したがって、get()関数を使用してください。

だからこれに変更します。

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

、結果は次のとおりです。

144 
15 
関連する問題