我最近想过创建自己的String类,以便更轻松地使用PHP的函数。而不是strlen($str)
我写$str->length()
。在某些函数中更容易记住参数顺序,例如substr
。
我在它上面运行了一些计时脚本,发现它比使用常规功能慢了 5倍。我还没有在一个真实的应用程序中测试过这个,所以我不知道会有多少可以忽略不计(1ms vs 5ms或100ms vs 500ms?)。
无论如何,让我感到震惊的是现在PHP现在更多地关注OOP,对于字符串,数组和其他基本类型来说,面向对象是否有意义?然后,他们可以更好地命名函数,代码只会“感觉”更好。并慢慢逐步淘汰旧的做事方式。对此有任何利弊吗?
答案 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