2009-07-17 9 views
2

に戻りませんその後、私はパブリック関数を渡すためにしようとしていると、値をstripVars:PHPクラスは、私が学んだように、私は小さな問題を抱えている、私はPHPにかなり新たなんだ文字列

<?php 

    include_once ('lib/php/com/DataStrip.php'); 

    echo($projCat); 
    $a = new DataStrip; 
    $a->stripVars($projCat); 
    echo($a); 

?> 

は、しかし、私は戻って、このエラーを取得する:

(!) Catchable fatal error: Object of class DataStrip could not be converted to string in myfilepath

...私がここで間違っている可能性のあることについてのアドバイスは?今はOOP PHPに慣れようとしているので、これは単なるテスト関数です。 :)

+0

'stripVars()'の指定された実装にコードがないと思いますか?あなたはそれを追加できますか? – beggs

+0

'echo($ a-> stripVars($ projCat));'を意味しましたか? –

答えて

11

何が起こると思いますか?あなたは変数にリターンをstripVars何の結果を保存していない:

$result = $a->stripVars($projCat); 
print $result; 

何をしようとするオブジェクト変数自体を印刷しています。オブジェクトの印刷時に何が起きるかを制御したい場合は、__toString methodを定義する必要があります。

+0

パオロ、ありがとう。私はそれを参照しようとしていたときに$ aがオブジェクトであることを認識しませんでした。 –

1

あなたは変数に戻らないでください。

$projCat = $a->stripVars($projCat); 

あなたがオブジェクト響いているecho $aとき - あなたは$aを宣言しないときに、その中の任意の特定の関数や変数を(あなたのようにそれを宣言しているので、クラス内のすべて - 。変数、関数、全体のキットとkaboodle

私もPHPのOOPの問題を持って、私が間違っている場合ので、修正してください:)

4

を、あなたがいることをしたい場合は...あなたはメソッドを宣言する必要があります__t oString()

<?php 

    final class DataStrip 
    { 
    private $vars; 

      public function DataStrip() 
      { 
        // constructor 
      } 

      public function stripVars($vars) 
      { 

        $this->vars = $vars; 
      } 

      public function __toString() { 

      return (string) $this->vars; 
      } 


    } 

// then you can do 

$a = new DataStrip; 
    $a->stripVars($projCat); 
    echo($a); 

    ?> 
関連する問題