php对象的引用,框架中的php对象引用

在我深入讨论讨论部分之前,有没有一个快速的问题;有没有一种方法来确定一个变量是否是对另一个变量/对象的引用?(只想检查我是否正确地传递了引用,而不是复制我的对象)。例如

$foo = 'Hello World';

$bar = &$foo;

echo (is_reference($bar) ? 'Is reference' : 'Is orginal';

我使用php5已经有几年了(仅限个人使用),我认为在面向对象的实现这个主题上,我有点相反。然而,模型-视图-控制器框架的概念对我来说是相当新的。

我看过很多教程,也看过一些开源框架(主要是codeignator),以便更好地理解所有东西是如何组合在一起的。我开始意识到使用这种结构的真正好处。

我习惯于用以下技术实现对象引用。

class Foo{

public $var = 'Hello World!';

}

class Bar{

public function __construct(){

global $Foo;

echo $Foo->var;

}

}

$Foo = new Foo;

$Bar = new Bar;

我很惊讶地看到codeignator和yii传递对象的引用,可以通过以下方法访问:

$this->load->view('argument')

我能看到的直接优势是更少的代码和更友好的用户。但我想知道,如果这些框架被优化,它是否更有效?或者仅仅是为了让代码更加用户友好?或者其他优势?这是一篇有趣的文章

Do not use PHP references

.

我问这个问题的原因是,我试图为个人项目和学习曲线建立一个框架。

更新

$Baz = $Foo;

$Baz->var = 'Goodbye World!';

echo $Foo->var;

/* Ouput */

Goodbye World!

我有点不好意思地说,我没想到会有这样的结果。现在确实让事情变得容易多了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值