鍍金池/ 問答/Java  PHP/ PHP不像java, 對象的生命周期極短, 實例化沒有意義,對嘛?

PHP不像java, 對象的生命周期極短, 實例化沒有意義,對嘛?

代碼沒有一個實例,全是靜態(tài)方法調(diào)用,這樣有什么好處和壞處?
PHP不像java, 對象的生命周期極短, 實例化沒有意義,對嘛?

回答
編輯回答
短嘆
代碼沒有一個實例,全是靜態(tài)方法調(diào)用

那是因為 php 以前就沒有 OO 那套東西。有毛好處,就是簡陋。

PHP不像java, 對象的生命周期極短, 實例化沒有意義,對嘛?

那看什么對象,如何設(shè)計, web 場景下, java 如果處理每個請求都實例化一下,一樣生命周期極短。

2018年8月2日 05:10
編輯回答
薔薇花

對象并不是用來提升性能的。

面向?qū)ο笫且环N開發(fā)方式。
解決一個問題最好的方式就是將它抽象成一個通用的解決方案,然后用對象來完成方案的細節(jié)的封裝。

2018年5月8日 22:12
編輯回答
解夏

這樣講的話,python,lua都不需要實例化了,畢竟生命周期也很短。

2017年4月27日 00:01
編輯回答
吃藕丑

全是靜態(tài)方法太占用內(nèi)存啦。。優(yōu)點就是調(diào)用會快點。
PHP生命周期短是由于有垃圾回收機制,你也可以不用這個機制。

2018年3月30日 08:31
編輯回答
祈歡

大家都說了理論上的東西了,那我就說點實際場景的。

PHP搞面向?qū)ο?,我找到的兩種非常有用的場景:

一種是功能極為單一且會在大量不同場景下使用到的模塊,用面向?qū)ο蠓椒〞浅H菀滓浦?。雖說直接寫個函數(shù)也可以,但是就會有不確定性的沖突問題,而實例化不僅調(diào)用簡單,而且文檔好寫,沖突好解決。舉例子來講的話,可以參考IPIP的免費版PHP接口。

另一種是PHP框架,這種情況下類和對象復(fù)用率極高。

因為PHP大部分情況下面對的問題都很唯一,所以復(fù)用率會比較低,所以PHP也不是非常面向?qū)ο蟮恼Z言。

2017年9月14日 18:16
編輯回答
命多硬

實例擴展性好點,靜態(tài)速度快

2017年2月26日 07:48
編輯回答
不歸路

對象化最大的好處是利于擴展,當然執(zhí)行上就沒有靜態(tài)化調(diào)用來的快,兩者取中間點,具體看你的業(yè)務(wù)需求

2017年6月5日 21:09
編輯回答
憶當年

短不短取決于你怎么用它,如果你打算用來跑swoole之類在cli下運行的腳本,然后又用一堆靜態(tài)方法靜態(tài)屬性甚至一堆單例,立馬就可以坑到你沒脾氣。
OO最重要的用途是抽象,如果全是靜態(tài)方法靜態(tài)屬性,那干嘛不用命名空間 + 函數(shù) + 靜態(tài)變量,要是閉包再用的6一點,變量照樣可以隱藏起來實現(xiàn)模塊化,但是那樣看起來更像是在寫c語言

2017年4月30日 03:28
編輯回答
綰青絲

靜態(tài)調(diào)用更快點

2018年2月9日 07:22