2015-06-25 33 views
-1

我試圖打印陣列$array1但它示出了錯誤味精作爲

說明:未定義變量:ARRAY1中d:\ XAMPP \ htdocs中\ trainig \上線16警告第四天\ accessmod.php:在d的foreach()提供的參數無效:\ XAMPP \ htdocs中\ trainig \第四天\ accessmod.php第16行

<?php 
    class AccessMode 
    { 
    public $integer_member = 1; 
    protected $float_number = 2.5; 
    private $string = "Tony"; 
    public $array1 = [5, 7, 9]; 
    function print_properties(){ 
     echo "public integer: ".$this->integer_member; 
     echo "<br>"; 
     echo "protected float: ".$this->float_number; 
     echo "<br>"; 
     echo "private string: ".$this->string; 
     echo "<br>"; 
     echo "public array: "; 
     foreach ($array1 as $av){ 
      echo $av." "; 
     } 

     } 

    } 
    $a = new AccessMode(); 
    echo "<br>"; 
    echo " From AccessMode class <br>"; 
    $a->print_properties(); 
    ?> 
+0

和[?當你使用$ this關鍵字在PHP(HTTP ://stackoverflow.com/q/4501570) – mario

回答

1

你想訪問類成員而不是變量,因此您需要使用$this。這段代碼應該是:

foreach ($this->array1 as $av) { 

然後輸出爲:

From AccessMode class 
public integer: 1 
protected float: 2.5 
private string: Tony 
public array: 5 7 9 

代碼則是:

<?php 
class AccessMode 
{ 
    public $integer_member = 1; 
    protected $float_number = 2.5; 
    private $string = "Tony"; 
    public $array1 = [5, 7, 9]; 

    function print_properties() 
    { 
     echo "public integer: " . $this->integer_member; 
     echo "<br>"; 
     echo "protected float: " . $this->float_number; 
     echo "<br>"; 
     echo "private string: " . $this->string; 
     echo "<br>"; 
     echo "public array: "; 
     foreach ($this->array1 as $av) 
     { 
      echo $av . " "; 
     } 

    } 

} 

$a = new AccessMode(); 
echo "<br>"; 
echo " From AccessMode class <br>"; 
$a->print_properties(); 
?> 
相關問題