【发布时间】:2014-08-25 15:18:19
【问题描述】:
这里有一些代码可以澄清这个问题。
Application.php:
class Application {
var $class1;
var $class2;
function __construct() {
include_once('Class1.php');
include_once('Class2.php');
$this->class1 = new Class1($this);
echo $this->class1->testvar; // echoes 1
$this->class2 = new Class2($this);
echo $this->class1->testvar; // echoes 2
}
}
Class1.php:
class Class1 {
var $app;
var $testvar = 1;
function __construct($app) {
$this->app = $app;
}
}
Class2.php:
class Class2 {
var $app;
function __construct($app) {
$this->app = $app;
$this->app->class1->testvar = 2;
}
}
这种方法有什么问题?
我注意到在某些情况下会发生递归,并且一致性不是嗯“一致”...
感谢您对此问题的任何帮助。
主要是我需要能够从 Class2 访问 Class1 变量,extends 不能很好地用于这些目的。
【问题讨论】:
-
如果有人在没有 Class1 实例的情况下执行
new Class2会发生什么? -
那会失败,但是这个订单是防弹的,因为它在应用程序中,没有用户输入可以改变订单。
标签: php class oop methods parent