如何使IDE像对象一样处理某个变量?

时间:2016-10-29 02:11:07

标签: php mysqli ide

基本上我从数据库类中获取了一个mysqli对象并将其存储在如下变量中:

$mysqli = Database::getInstance()->getMysqli();
在我输入$mysqli->后声明之后

我没有得到任何提示(自动完成)。我尝试像这样(mysqli)$mysqli投射对象但我得到语法错误。从getMysqli检索的对象实际上是一个mysqli对象。我用var_dump测试了它,结果如下:

  

object(mysqli)#2(19){[" affected_rows"] => int(0)[" client_info"] => string(79)" mysqlnd 5.0.11-dev - 20120503 - $ Id:15d5c781cfcad91193dceae1d2cdd127674ddb3e $" [" client_version"] => int(50011)[" connect_errno"] => int(0)[" connect_error"] => NULL [" errno"] => int(0)["错误"] => string(0)"" [" error_list"] => array(0){} [" field_count"] => int(0)[" host_info"] =>字符串(20)" 127.0.0.1通过TCP / IP" ["信息"] => NULL [" insert_id"] => int(0)[" server_info"] => string(10)" 5.7.11-log" [" SERVER_VERSION"] => int(50711)[" stat"] => string(138)"正常运行时间:604869线程:3个问题:1004慢查询:0打开:640刷新表:1打开表:496每秒查询平均值:0.001" [" SQLSTATE"] => string(5)" 00000" [" PROTOCOL_VERSION"] => int(10)[" thread_id"] => int(92)[" warning_count"] => int(0)}

如果有人可以与我分享他的见解,我将永远感激,谢谢。

1 个答案:

答案 0 :(得分:0)

我花了一分钟才发现这是一个IDE问题

  输入$ mysqli->之后的

声明之后我没有得到任何提示(自动填充)

问题是你的IDE不知道这行做什么

$mysqli = Database::getInstance()->getMysqli();

在大多数IDE中,您应该能够添加文档块并使其自动完成

/** @var \mysqli */
$mysqli = Database::getInstance()->getMysqli();

或者,您可以在getMysqli()功能

上方添加docblock
/**
 * @return \mysqli
 */