1

次のクラスがあるとします。

<?php
class test{
static public function statfunc()
    {
    echo "this is the static function<br/>";
            $api= new object;

    }   
}

class traductor
{

    public function display()
    {
       echo "this is the object function";
}
}

test::statfunc();

$api->display();

これはメッセージを表示しません"this is the static function<br/>"

静的関数を介してインスタンス化し、そのオブジェクトを外部に取得する方法はありますか?

ありがとう... 私はオブジェクト プログラミング コードに関して不慣れです。

4

2 に答える 2

2

宣言の使用は少しずれています。コードの結果、2つの致命的なエラーが発生します。まず、クラスオブジェクトが見つかりません。次のものを置き換える必要があります。

$api= new object;

return new traductor;

静的クラスであるため、アクションを実行し、データを保持しないため、staticキーワードを使用します。$ thisなどを使い始めるときは、覚えておいてください。結果を別の変数に返す必要があります。

test::statfunc();
$api->display();

次のようになります。

$api = test::statfunc();
$api->display();

静的キーワードと例の詳細については、 http://php.net/manual/en/language.oop5.static.phpを参照してください。

于 2012-06-21T16:53:35.883 に答える
2

静的関数からオブジェクトを返す必要があります。

static public function statfunc()
{
    $api = new traductor;
    return $api;
}   

次に、返されたオブジェクトを使用可能な変数に格納します。

$api = test::statfunc();
$api->display();
于 2012-06-21T16:46:53.817 に答える