PHP应该使用对象作为基本数据类型吗?

时间:2009-07-08 21:04:55

标签: php oop class

我最近想过创建自己的String类,以便更轻松地使用PHP的函数。而不是strlen($str)我写$str->length()。在某些函数中更容易记住参数顺序,例如substr

我在它上面运行了一些计时脚本,发现它比使用常规功能慢了 5倍。我还没有在一个真实的应用程序中测试过这个,所以我不知道会有多少可以忽略不计(1ms vs 5ms或100ms vs 500ms?)。

无论如何,让我感到震惊的是现在PHP现在更多地关注OOP,对于字符串,数组和其他基本类型来说,面向对象是否有意义?然后,他们可以更好地命名函数,代码只会“感觉”更好。并慢慢逐步淘汰旧的做事方式。对此有任何利弊吗?

5 个答案:

答案 0 :(得分:4)

您始终可以记录代码并使用PHP提供的功能。从长远来看,很难判断它是否会对你产生影响。有许多不同因素可以影响这一点。试一试,也许如果不能解决问题,请切换回原来的方式。

就个人而言,我只是保持文档记录良好,而不是过于花哨。如果你想进入更多的OOP,你最好的选择是研究一个框架。

我希望PHP从一开始就能让它变得如此简单。代码看起来很整洁。

答案 1 :(得分:1)

我认为这会很好,但它不再是PHP ......

答案 2 :(得分:1)

当然,$somestring->length()很不错,但另一方面,每当你创建一个字符串然后不断将字符串转换为字符串时,你必须$somestring = new String('asdf...'),反之亦然。你最终可能会更难写和更难从长远来看。

我并没有真正看到PHP语言以这种方式发生变化 - 它会改变太多基础语言。如果你想要一种这样的语言,你将不得不改变语言,而不是希望改变语言。

答案 3 :(得分:0)

我明白你为什么要这样做,但是除了“让程序员更容易”之外别无其他的库和抽象是浪费时间,我谦虚地认为。它们很少有效率,它们很脆弱,而且它们甚至有点自命不凡。

PHP存在很多错误,这是肯定的,但是如果你试图在任何地方为它们创建解决方法,那么你将花费大量时间在其他地方更好地花费。

答案 4 :(得分:0)

看看Stringy。它为您提供了大量有用的方法,使得在PHP中更容易使用特别是UTF编码的字符串:

$stringy = S::create('Fòô', 'UTF-8');
count($stringy);  // 3