2017-04-02 18 views
1

私は以下の単純なクラスのプロパティを印刷しようとしています。しかし、代わりに上記のエラーが表示されます。私はここで同様の質問に対する答えを見つけていない。PHP - クラスのオブジェクトを文字列に変換できませんでした

echo "$object1 name = " . $object1->name . "<br>"; 

WindowsではXAMPPを使用していますか?

<?php 
    $object1 = new User("Pickle", "YouGotIt"); 
    print_r($object1); 
    $object1->name = "Alice"; 

    echo "$object1 name = " . $object1->name . "<br>"; /* this triggers the error */ 

    class User 
    { 
     public $name, $password; 

     function __construct($n, $p) { // class constructor 
      $name = $n; 
      $password = $p; 
     } 
    } 
?> 

答えて

2

あなたのクラスのコンストラクタではなく、インスタンスのプロパティでローカル変数を使用しているあなたのコードで間違った二つのこと、

  • があります。あなたのコンストラクタメソッドは次のようにする必要があります:

    function __construct($n, $p) { 
        $this->name = $n; 
        $this->password = $p; 
    } 
    
  • 今クラスのオブジェクトが文字列に変換することができなかった、あなたのエラーになります。

    echo "\$object1 name = " . $object1->name . "<br>"; 
    
+0

あなたが正しいです:これは、この$objectecho内のステートメントの

あなたはこのように、バックスラッシュでこの$object1をエスケープする必要が
echo "$object1 name = " ... ^^^^^^^^ 

です。本当にありがとうございました。 –

関連する問題