【发布时间】:2018-07-10 10:43:52
【问题描述】:
我并不真正了解链接函数如何处理返回的值。
假设我有一个返回字符串或数组的函数
public static $query;
public static function getArray($arr) {
Database::$query = $arr;
return Database::$query;
}
public function single() {
return Database::$query[0];
}
为什么,当我调用它时,我可以不将函数链接到它上以影响字符串(在此示例中,我要附加“测试”,我将如何执行此操作?
为什么我不能直接打电话
Database::getArray(array("test","test2"))->single();
没有收到Call to a member function single() on array 错误。但是,让它只返回数组的第一个值。
我将如何去追加做我想要在这里实现的目标?为什么我的逻辑错了?
【问题讨论】:
-
什么是
$query?可能需要查看您的Database课程 -
只是一个
public static $query;我会添加它! -
仅供参考,静态变量基本上是命名空间的全局变量和静态方法 - 命名空间的全局函数。这与 OOP 无关。此外,制作另一个“数据库包装器”是一个非常糟糕的主意。
-
@IMSoP 我见过太多“高级”开发人员,即使经过十年的编程,他们仍然这样写。不向新手指出,他正在做的实际上不是 OOP 并且有更好的方法,这将是一种伤害。