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

您应该从静态函数返回对象:

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

然后将返回的对象存储在您可以使用的变量中。

$api = test::statfunc();
$api->display();
于 2012-06-21T16:46:53.817 回答
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 回答