2011-01-27 18 views
1

ここでは非常に簡単な質問です。私の最初のOOプログラミングをPHPでやっている、Javaにもっと慣れている& C#。クラス内のPHP定義関数

class RouteParser { 
    var $DEBUG = 1; 

    function parse($from, $to, $route){ 
     debug("test"); 
     debug("test again"); 
    } 

    function debug($arg) { 
     if($DEBUG) { 
      echo "<pre>DEBUG: " . print_r($arg) . "</pre>"; 
     } 
    } 
} 

そして、このコード実行:このクラス定義で

include("RouteParser.php"); 
$rp = new RouteParser(); 
$return = $rp->parse("from","to","test"); 

私はエラーを取得しています:

Fatal error: Call to undefined function debug() in C:\xampplite\htdocs\routeparse\RouteParser.php on line 7

PHPはとして関数プロトタイプをサポートしていません。私が知る限りでは、あるクラスの関数に別のクラスの関数が存在することを伝える方法がわかりません... accor関数が条件付き(意味をなさない)の内部にある場合、これは問題に過ぎません...

答えて

11

代わりに$this->debug()を使用してください。 $thisは、PHPにクラスそのものの機能を見させますが、debug()は、PHPがグローバルスコープでdebugという関数を探すようにします。

+0

ああ、意味があります。まあ、他の言語と比較して、私はあなたが言っていることを理解しています...-) – tkrajcar

+0

メソッドが静的であれば、クラス自体の中で 'self :: debug()'を使って参照します。 。 – KingCrunch

関連する問題