首页 / PHP / 在PHP中实例化类实例的不同方法
在PHP中实例化类实例的不同方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在PHP中实例化类实例的不同方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1647字,纯文字阅读大概需要3分钟。
内容图文
![在PHP中实例化类实例的不同方法](/upload/InfoBanner/zyjiaocheng/779/d8867d86d29b45fc987c05fa8a68272e.jpg)
参见英文答案 > PHP class instantiation. To use or not to use the parentheses? [closed] 2个
不能更好地阐明这个问题的道歉.我已经尝试过一些简单的测试,并且无法解决这些问题.无论如何,我想知道以下两个例子之间存在什么差异(如果有的话):
<?php
class foo
{
public function __construct()
{
}
}
$foo1 = new foo;
还有这个:
<?php
class foo
{
public function __construct()
{
}
}
$foo1 = new foo();
请注意,在第二个示例中,我使用括号和’new’关键字.如果这里没有差异,我可以对我的foo类声明做些什么来创造差异?如果存在差异,它们是否特别适用于PHP?谢谢.
解决方法:
我觉得使用括号实例化类更好,即使构造函数不需要任何参数.虽然您的示例执行相同的操作,但如果构造函数发生更改,则不会.这是一个品味和风格的问题.
这是你的第一个例子:
<?php
class foo
{
public function __construct()
}
$foo1 = new foo;
这有效,但如果我们这样做呢?
public function __construct($db = null) {}
..好吧,那么它仍然可以工作,因为参数有默认值.
但是,如果我们这样做呢?
public function __construct($db) {}
..由于缺少参数,它会破坏,你需要括号才能传递参数.如果你曾经回过头来让foo构造函数变得更有趣,那么你只需要添加括号和所有参数.
最后,语言确实在发展.当你使用括号时我并没有看到PHP抱怨,但如果你不这样做,它有一天会变得脾气暴躁.有些人使用无括号的方式来说我们实例化的这个类没有构造函数.这是个人品味.你可以有意义地使用缺席:
$f = new foo; // class has no constructor, or constructor has no arguments
$f = new foo(); // class has a constructor with default arguments we can set later
$f = new foo($bar) // class has a constructor, and it needs arguments
如果在大型代码库中一致地完成上述操作,则可以节省时间.我不再那么肯定了,因为人们在测试方面变得更好 – 但这只是我的意见.
然而,目前 – 不,两个给出你的例子没有区别.
内容总结
以上是互联网集市为您收集整理的在PHP中实例化类实例的不同方法全部内容,希望文章能够帮你解决在PHP中实例化类实例的不同方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。