當前位置:首頁 » 編程語言 » phpnew類

phpnew類

發布時間: 2023-08-22 10:02:25

php"直接用類名"和"new實例化"調用函數哪種方法效率更高

1.首先用法不同,__new__()用於創建實例,所以該方法是在實例創建之前被調用,它是類級別的方法,是個靜態方法;

而 __init__() 用於初始化實例,所以該方法是在實例對象創建後被調用,它是實例級別的方法,用於設置對象屬性的一些初始值。

由此可知,__new__()在__init__() 之前被調用。如果__new__() 創建的是當前類的實例,會自動調用__init__()函數,通過return調用的__new__()的參數cls來保證是當前類實例,如果是其他類的類名,那麼創建返回的是其他類實例,就不會調用當前類的__init__()函數。

2.其次傳入參數不同

__new__()至少有一個參數cls,代表當前類,此參數在實例化時由Python解釋器自動識別;

__init__()至少有一個參數self,就是這個__new__()返回的實例,__init__()在__new__()的基礎上完成一些初始化的操作。

3.返回值不同

__new__()必須有返回值,返回實例對象;

__init__()不需要返回值。另外談談__new__()的作用,__new__()方法主要用於繼承一些不可變的class,比如int, str, tuple, 提供一個自定義這些類的實例化過程的途徑,一般通過重載__new__()方法來實現。代碼如下

另外__new__()方法還可以用來實現單例模式,也就是使每次實例化時只返回同一個實例對象。

② php中new什麼意思

$db=new DB(); 實例化一個 DB類
$db=DB(); 調用 名為DB的方法

③ php類的靜態方法中可以用new嗎原因

1、Java的靜態方法中可以新建其他類對象。可以new,沒有不許。
2、php的靜態方法也可以新建對象。首例中的$s是個局部變數,方法執行完後,在系統需要的時候,這塊內存就會被回收。
3、靜態方法中只是不許寫 己類的非靜態的屬性、方法。
4、對程序的影響,new實例化對象是一項基本功能,就會實例化一個對象,多佔一點內存

熱點內容
為什麼安卓殺後台越來越嚴重 發布:2025-03-16 08:42:34 瀏覽:881
python解析json 發布:2025-03-16 08:36:22 瀏覽:566
奧丁鎮伺服器怎麼進 發布:2025-03-16 08:34:04 瀏覽:5
在優酷看視頻會緩存到c盤嗎 發布:2025-03-16 08:29:05 瀏覽:258
口罩輥軸編程 發布:2025-03-16 08:21:52 瀏覽:580
網易我的世界官方開伺服器 發布:2025-03-16 08:16:57 瀏覽:43
王者榮耀密碼怎麼改 發布:2025-03-16 08:16:24 瀏覽:572
安卓隱藏的游戲在哪裡 發布:2025-03-16 08:05:31 瀏覽:333
嵌入式伺服器搭建 發布:2025-03-16 07:53:28 瀏覽:684
安卓系統微信登錄設備管理在哪裡 發布:2025-03-16 07:44:55 瀏覽:510