【发布时间】:2014-10-24 20:42:48
【问题描述】:
这里是示例代码:
namespace myApp
class app
{
private $pdo = null;
public function __construct() {
$this->user=new User();
$this->user->getPDO();
}
}
class User
{
public function getPDO() {
//get PDO from app class
}
}
如何从用户类得到$pdo 从应用类?
由于应用程序类中的构造,无法使用扩展。
我不想声明独立的类(应用程序和用户),而不是使用全局来相互通信。
编辑: 这个解决方案可以吗? 命名空间 myApp
class app
{
public $pdo = null;
public function __construct() {
$this->user=new User($this);
$this->user->getPDO();
}
}
class User
{
private $app=null;
public function __construct($app) {
$this->app=$app;
}
public function getPDO() {
return $this->app->pdo;
}
}
【问题讨论】:
-
new User($this->pdo)? -
如果
$pdo是app类的private 属性,为什么User应该访问它? -
@Fractaliste 为什么不呢?它被称为abstraction。
private变量可以让你隐藏类的内部,而public方法可以让你以你想要的方式操作这些私有变量。
标签: php