【问题标题】:access object outside through an abstract function通过抽象函数访问外部对象
【发布时间】:2012-06-21 16:44:47
【问题描述】:

给定以下类:

<?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&lt;br/&gt;"

有没有办法通过静态函数实例化并将该对象取出来?

谢谢...我对对象编程代码缺乏经验。

【问题讨论】:

    标签: php class static-methods


    【解决方案1】:

    你应该从你的静态函数中返回对象:

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

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

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

    【讨论】:

    • 感谢您的简单快速的帮助!也感谢您的编辑。
    【解决方案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

    【讨论】:

    • 感谢您的帮助!!我会看看你提供的链接。
    猜你喜欢
    • 1970-01-01
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多