2012-04-12 17 views
1

TestPage.phpがブラウザで実行されているとき、「新しいobjを作成しようとしています...」はエコーされますが、それ以外は何もありません。コンストラクタは呼び出されていませんか?PHPコンストラクタは呼び出されませんか?か何か?

これは、いずれかのクラスのための完全なコードではありませんが、うまくいけば、それは私が間違っているつもりだところを教えてくれる人のために十分です...

TestPage.php

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/plain; charset=UTF-8"> 
     <title></title> 
    </head> 
    <body> 
     <?php 
     class MyClass { 
     $api_key = 'somestring'; 
     $username = 'username'; 
     echo 'trying to create new obj...'; 
     $myObj = new MyClass($api_key, $username); 
     echo 'new obj created...'; 

    ... 
     ?> 
    </body> 
</html> 

MyClass.class .php

<?php 
class MyClass { 
    protected $_api_key; 
    protected $_username; 


    public function __construct($api_key, $username) { 
     echo 'entered constructor...'; 
     $this->_api_key = $api_key; 
     $this->_username = $username; 
     echo 'leaving constructor...'; 
    } 

    ... 
} 
?> 
+2

を試してみてください。エラーログ(Apacheのエラーログなど)またはdisplay_errorsがオンになっている必要があります。こうすることで、スクリプトを強制終了する構文が表示されます。 – Corbin

+0

チップをありがとう。私はこれを調べます。 –

答えて

4

実際にはクラスとして定義する必要があります。それは次のようになります:

class MyClass { 
    protected $_api_key; 
    protected $_username; 


    public function __construct($api_key, $username) { 
     echo 'entered constructor...'; 
     $this->_api_key = $api_key; 
     $this->_username = $username; 
     echo 'leaving constructor...'; 
    } 
} 

あなたがファイルに持っているコードを置くだけで、それだけでは何もしません。

さらに、そのファイルをまだ格納していない場合は、そのファイルを含める必要があります。ような何か:

include 'MyClass.class.php'; 
+0

ありがとう....私はクラスでそれを持っていましたが、間違ってそれを編集しましたが、クラスファイルをincludeまたはrequire_onceするのを忘れてしまったとは思いません。その日は家に帰る時間でなければなりません。 –

+0

誰もが時々起こります。喜んで助けになる。 – clexmond

1

あなたがクラスを定義するclassキーワードを必要とするいくつかの基本的な例

ためhttp://php.net/manual/en/language.oop5.basic.phpはあなたが開発しているときはいつでも、あなたが積極的にあなたのウェブサーバーのを見てしなければならないのいずれか

class MyClass 
{ 
protected $_api_key; 
    protected $_username; 


    public function __construct($api_key, $username) { 
     echo 'entered constructor...'; 
     $this->_api_key = $api_key; 
     $this->_username = $username; 
     echo 'leaving constructor...'; 
    } 
} 
関連する問題