PHP 中為什麼沒有類似 Java 的 interface 介面?

來源:互聯網
上載者:User
關鍵字 Java PHP
PHP 目前已經有了物件導向功能,但為何如此重要的類似於 Java 的介面功能沒有了呢?

回複內容:

PHP介面類interface的正確使用方法
PHP: 對象介面
what are you taking about?PHP中有介面,它是看到什麼新的東西就往自己的特性裡面裝,也不看適用不適用。最後搞得跟個靜態語言似的。

個人認為介面的約束性太強,不適合動態語言。動態語言更適合一種“弱介面”的概念,即實現了某個方法就認為實現了某個介面。反正你動態語言方法調用相當於反射,幹什麼都是反射,那就用 method_exists 來判斷好了。動態類型的語言要interface何用先問是不是,再問為什麼。PHP有traits。這都2014年了,也許interface應該被淘汰了,單從語言來講的話。
也有interface。。。何止有interface,還有trait,直接複用方法代碼,不用每個類都實現一遍。也就是java用java 8裡的interface default method才能實現的東西。
在php裡主要用於運行時的type hinting。
但這個type hinting只能用clss或者interface,用int或者string之類是不行的,簡直就是動態語言界的(嗶嗶嗶),看到高大上的就硬塞進語言裡,做不好又硬做,留個坑再慢慢補。 第一,是有Interface的!

第二,PHP的Interface並非完全沒有用,動態類型的語言的確在某些物件導向特性的使用上表現乏力,但是PHP在類型檢測上卻有所體現,比如之前看的Laravel架構中的用法:
public function validateCredentials(UserInterface $user, array $credentials){ ... }
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.