2009-07-08 33 views
4

我最近有一個想法來創建我自己的String類,以使使用PHP的函數更容易。我寫$str->length()而不是strlen($str)。使某些功能中的參數訂單更容易記憶,例如substrPHP應該使用對象作爲基本數據類型嗎?

我跑了一些時間腳本,發現它比使用常規函數慢了5倍。我還沒有在真正的應用程序中測試過,所以我不知道這是多麼微不足道(1ms vs 5ms或100ms vs 500ms?)。

無論如何,它讓我感到震驚,現在PHP現在更多地關注OOP,對於字符串,數組和其他基本類型是否是面向對象是沒有意義的?然後他們可以更好地命名這些功能,並且代碼會「感覺」更好。慢慢地逐步淘汰舊的做事方式。對此有何利弊?

回答

4

您可以隨時記錄您的代碼,並使用PHP提供的功能。從長遠來看,很難判斷它是否會影響你。有許多不同的因素可以影響這一點。給它一個鏡頭,也許,如果它不工作切換回原來的方式。

就我個人而言,我只是保留我的文檔,而不是太花哨。如果你想推動更多的OOP,最好的辦法就是看看框架。

我希望PHP從一開始就讓它變得簡單。代碼看起來非常整齊。

+2

如果使用框架仍然是你不這樣做,它可能是時候尋找到一個不同語言,特別是真正面向對象的語言。 – 2009-07-08 21:35:43

1

,我認爲這將是很好的,但它不會是PHP更多...

0

我理解你爲什麼這樣做,但做沒有別的除了圖書館和抽象「使它對於程序員來說更容易「,這是浪費時間,以我的愚見。他們很少有效率,他們很費力,而且他們甚至有些自命不凡。

PHP有很多錯誤,這是可以肯定的,但是如果你嘗試在任何地方發明解決方法,你會花費很多時間在其他地方使用。

1

當然,$somestring->length()是不錯的,但是在反面你必須$somestring = new String('asdf...')每當你做一個字符串,然後不斷轉換字符串,反之亦然。從長遠來看,你可能最終會讓事情難以寫下來。

我並沒有真正看到PHP語言以這種方式改變 - 它會改變太多的基礎語言。如果你想要一個這樣的語言,你將不得不改變語言,而不是希望語言改變。

+0

現在這是不正確的。字符串對象可以使用__toString魔術方法作爲常規字符串。 Array對象的索引訪問可以使用ArrayAccess接口完成。我會做一些基準測試,看看這會對性能產生多大影響,會很整潔。 – 2014-12-19 10:35:33

0

看看Stringy。它給你一噸的有用的方法,讓使用更加簡單特別是UTF編碼的字符串在PHP工作:

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