
new 是面向对象的概念.DB是类的意思。
$db=new DB
实例化DB类,这个类里面有很多方法。
$db=db()
只是把db函数返回的结果保存在$db里。
$obj2 = new $obj1是给$obj2重新分配一个和$obj1一样的内存,这样修改$obj2的时候,$obj1不会被改变如果直接$obj2 = $obj1的话其实是把$obj1的内存地址共享给了$obj2,这样在修改其中一个的时候另一个也会改变
这是PHP的一个特性,函数,类、类方法都可以这样调用,解释器或自动找寻匹配的函数、类以及类方法调用。可以说是PHP比较灵活的一个特性。运行下面的代码试试
<?php
$func = 'Hello'
$func()
function Hello() {
echo ('Hi there!')
}
?>
你贴出来的代码,是通过蹩脚的办法试图实现一个工厂方法,但是他这个代码设计是不太好的。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)