|
|
1
183
您要求的功能可从PHP5.4获得。以下是PHP 5.4中的新功能列表: http://php.net/manual/en/migration54.new-features.php 以及新功能列表中的相关部分:
|
|
2
37
你不能做你要求的事;但是你可以“作弊”,因为在PHP中,你可以有一个与类同名的函数;这些名字不会冲突。
然后,您可以声明一个函数,该函数返回该类的实例,并且与该类具有完全相同的名称:
现在,可以像您所问的那样使用一行程序了——唯一的问题是您正在调用函数,因此没有使用新的:
它起作用了:在这里,我得到:
这样,您甚至可以在IDE中得到提示——至少在EclipsePDT2.x中是这样;请参阅screeshot:
编辑2010-11-30: 仅供参考,几天前提交了一个新的RFC,建议将此功能添加到PHP的未来版本中。 见: 征求意见:实例和方法调用/属性访问 因此,在PHP 5.4或其他未来版本中,可能会执行以下操作:
|
|
|
3
19
通过定义标识函数,您可以更普遍地执行此操作:
|
|
|
4
19
怎么样:
:P |
|
|
5
16
如果你真的不想这样做,你可以像罗普斯塔建议的那样使用工厂:
|
|
|
6
6
|
|
|
7
5
我们可以做到这一点
|
|
|
8
3
一、 同样,他也在寻找一个单行程序来完成这项工作,作为将日期从一种格式转换为另一种格式的单个表达式的一部分。我喜欢在一行代码中执行此操作,因为这是一个单一的逻辑操作。因此,这有点神秘,但它允许您在一行中实例化和使用日期对象:
将日期字符串从一种格式转换为另一种格式的另一种方法是使用帮助函数来管理代码的OO部分:
我认为面向对象的方法是很酷和必要的,但是它有时会很乏味,需要太多的步骤来完成简单的操作。 |
|
|
9
0
我认为这是一个老生常谈的问题,但我认为有一点应该提到: 名为“\uuuCall()”的特殊类方法可用于在类内创建新项。您可以这样使用它:
因此,您可以欺骗PHP在顶级类(或任何真正的类)中生成一个“新”命令,并将include命令放入_call()函数中,以包含您请求的类。当然,您可能需要测试$func,以确保它是发送到_call()命令的“新”命令,(当然)由于_call()的工作方式,您还可以使用其他命令。 |