1

TestPage.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...';
    }

    ...
}
?>
4

2 に答える 2

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';
于 2012-04-12T00:37:46.943 に答える
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...';
    }
}
于 2012-04-12T00:38:24.380 に答える