我喜欢C#中的方式,在那里你可以编写一个扩展方法,然后做这样的事情:
string ourString = "hello";
ourString.MyExtension("another");
甚至是
"hello".MyExtention("another");
有没有办法在PHP中拥有类似的行为?
发布于 2010-07-28 10:25:55
如果您将所有字符串重新实现为对象,则可以。
class MyString {
...
function foo () { ... }
}
$str = new MyString('Bar');
$str->foo('baz');
但你真的不会想这么做的。PHP本质上不是一种面向对象的语言,字符串只是原始类型,没有方法。
如果不扩展核心引擎,就不可能在PHP中实现'Bar'->foo('baz')
语法(这也不是您想要了解的内容,至少不是出于这个目的:)。
对于扩展对象的功能,没有什么比简单地编写一个接受原语的新函数更好的了。换句话说,PHP与
"hello".MyExtention("another");
是
my_extension("hello", "another");
无论出于何种目的,它都具有相同的功能,只是语法不同。
https://stackoverflow.com/questions/3349428
复制相似问题