現在我已經用PHP寫了半年多了,雖然我還有很長的路要走,但我可以很容易地解決問題,併爲我需要的任何內容創建腳本。我來自面向對象的背景,這是PHP似乎很少使用它的默認庫。爲什麼PHP不在其默認庫中使用對象?
大多數外部庫我使用或創建,使用面向對象的設計,而默認似乎使用下一個示例。我將使用文件/寫入讀取過程爲例:
$file_path = "/path/to/file.txt";
$file_handle = fopen($file_path, "w+");
$content = fread($file_handle, filesize($file_path));
fclose($file_handle);
現在對我來說,它將使更多的意義來使用的設計,看起來是這樣的:
$file_handle = new FileStream("/path/to/file.txt");
$content = $file_handle->read();
$file_handle->close();
現在我確信這背後會有一個明確的推理,因爲同樣的想法被應用於字符串,數組,cURL,MySQL查詢等等。我很想知道它是什麼。
因此,如果最好編寫以句柄或資源作爲第一個參數的獨特函數,例如
object_method($handle, $value);
那麼爲什麼最流行的(外部)PHP庫傾向於使用:
$object->method($value);
和我應該寫我自己的庫和應用程序時使用?
因爲PHP中的OOP是相對較新的,並且在後來的5.x版本中才變得有用。 PHP有一個** LOT **的舊行李拖動。 – 2012-02-23 19:20:31
不能爲作者說話,但我的猜測是遺留原因;如果有效,不要打破它。 – 2012-02-23 19:20:45
不是S.O類型的問題。 – 2012-02-23 19:20:50