在PHP中使用扩展类的变量

时间:2014-04-20 19:02:00

标签: php

我想这可能是一个非常简单的问题,但我找不到任何解决方案,所以我希望有人能够帮助我。

我是JAVA开发人员,目前正在尝试在NetBeans中学习PHP写作中的OOP。在此IDE中,存在代码自动完成/建议的此功能。但是,在我的课程中,我无法使用它。

我有两个类的文件:

abstract class DB {

    protected $db;

    public function __construct() {
        try {
            require_once '../../MysqliDb.php';
            $this->db = new MysqliDb(DB_HOST, DB_USER, DB_PASS, DB_NAME);
        } catch (Exception $e) {
            exit('Database connection could not be established.');
        }
    }
}

B类

include './DB.php';

    class B extends DB{

        public function getRecords() {
            $this->db->//??
        }
    }

在这个标有问号的地方,我希望得到有关$db对象中方法的建议,但我根本没有。

有人可以告诉我在那里有什么建议我必须做什么吗?我想我没有它们因为一些代码错误,但它也可能只是IDE错误。

2 个答案:

答案 0 :(得分:3)

与Java相反,PHP是一种丢失型语言 - 这意味着类的变量和属性不具有类型声明

为了提供更好的自动完成功能,IDE通常会做的是阅读注释(更准确地说是PHPDOC注释 - 与JAVADOC非常相似)来启用此类功能

NETBEANS(以及Eclipse)中的

完成
abstract class DB {
    /**
    * @var MysqliDb
    */
    protected $db;

    ...
}

答案 1 :(得分:2)

这提示您可以通过告诉IDE变量的类型

来实现
/**
* @var MysqliDb
*/
protected $db;

或者,如果您有返回它的方法,则应设置其返回类型

/**
* @return MysqliDb
*/
protected function getDb() {
    return $this->db;
}