国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

PHP 在function中直接實例化interface,不用再class 后 implement

這篇具有很好參考價值的文章主要介紹了PHP 在function中直接實例化interface,不用再class 后 implement。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

突發(fā)奇想,php能不能實現(xiàn)類似java 那種把interface 類當作方法的參數(shù)呢?

java 代碼如下:

interface TestInterface{
    void test(String param);
}
public class Test(){
    private static TestInterface testInterface;
    public static  void setTestInterface(TestInterface testInterface){
        this.testInterface=testInterface;
    }
    public static void action(){
        this.testInterface.test("param") ;
    }

    public static void main(String[] args){
        Test test =new Test();
        test.setTestInterface(new TestInterface(){
            @Override
            public void test(String p){
               System.out.print(p);
            }
        })
    }
}

經(jīng)過調查,在國內的帖子上沒有找到類似的實現(xiàn)。只好求助于google 了。我在 stackoverflow 上發(fā)布了一個帖子,然而第二天被告知和其他問題重復了。我看了那個問題,和我想要的差不多。
stackoverflow上的回答。
經(jīng)過修改,PHP 實現(xiàn)的代碼如下:

<?php
// 定義interface
interface TestInterface{
    public function test($p);
}
class Test{
    // 定義類內全局變量
    public TestInterface $testInterface;
    // interface 變量的set 方法(也可以說是interface具體實現(xiàn))
    public function setTestInterface(TestInterface $interface){
        $this->testInterface = $interface;
    }
    // 使用interface 的具體操作
    public function action($p){
        $this->testInterface->test($p);
    }
    // 測試方法
    public function main($param){
        $this->setTestInterface(new class implements TestInterface{
            public function test($p){
                echo $p;// 打印傳遞進來的參數(shù)
            }
        });
        $this->action($param);
    }
}
// 測試
$test = new Test();
$test->main("test1");
$test->main("test2");

輸入結果是

test1
test2

以上就是在php 中 interface 作為function函數(shù)的參數(shù),怎么在方法中實現(xiàn)interface。文章來源地址http://www.zghlxwxcb.cn/news/detail-577322.html

到了這里,關于PHP 在function中直接實例化interface,不用再class 后 implement的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • TypeScript 中【class類】與 【 接口 Interfaces】的聯(lián)合搭配使用解讀

    TypeScript 中【class類】與 【 接口 Interfaces】的聯(lián)合搭配使用解讀

    導讀 : 前面章節(jié),我們講到過 接口(Interface)可以用于對「對象的形狀(Shape)」進行描述。 本章節(jié)主要介紹接口的另一個用途,對類的一 部分行為進行抽象。 類配合實現(xiàn)接口 實現(xiàn)( implements )是面向對象中的一個重要概念。 一般來講,一個類只能繼承自另一個類 ,但

    2024年02月14日
    瀏覽(19)
  • 深入理解 TypeScript 的 type 以及 type 與 interface 和 class 的區(qū)別

    TypeScript 是一種強類型的 JavaScript 超集,它為 JavaScript 提供了靜態(tài)類型系統(tǒng)。在 TypeScript 中,我們可以使用 type 、 interface 和 class 為數(shù)據(jù)定義類型。本文將重點介紹 type 的作用以及它與 interface 和 class 的區(qū)別。 type type 是 TypeScript 中用于定義類型別名、聯(lián)合類型、交叉類型等復

    2024年02月03日
    瀏覽(16)
  • 不用996,不用007,賺的還比我多?我直接好家伙

    不用996,不用007,賺的還比我多?我直接好家伙

    今天打開手機就看見信息99+,喲吼,還挺熱鬧——感情都在上班摸魚呢。 好奇心讓我點了第一條未讀信息,好家伙,直接讓我手機閃退出APP了! 嗨,我這暴脾氣,直接手動滑到了第一條!但是我沒想到到他們只是在日常卷,一水就水了那么多。 更奇葩的是群里的一個人的發(fā)

    2023年04月20日
    瀏覽(22)
  • 【開發(fā)工具】gitee還不用會?我直接拿捏 >_>

    【開發(fā)工具】gitee還不用會?我直接拿捏 >_>

    ??鍵盤敲爛,年薪30萬?? 目錄 ??揭開git面紗 ??git的一些前置操作 ??如何獲取本地倉庫 ??本地倉庫的操作 ??遠程倉庫操作 ??分支操作 ??標簽操作 ??常見問題 注意:在使用git命令的時候一定要注意路徑,在不同路徑下執(zhí)行相同命令結果也是不一樣的例如創(chuàng)建和克隆倉

    2024年02月05日
    瀏覽(45)
  • 前端開發(fā)攻略---JS將class轉換為function。滿分寫法無死角

    前端開發(fā)攻略---JS將class轉換為function。滿分寫法無死角

    \\\'use strict\\\' : class中的代碼全部都是在一個 嚴格模式 下,對于一些不安全的操作會拋出錯誤,使代碼更加規(guī)范。 function Example(name) { ... } : 這是一個函數(shù)聲明,函數(shù)名為? Example ,它接受一個參數(shù)? name 。這個函數(shù)充當了類的構造函數(shù)的角色。 函數(shù)名與class名相同 。 if (!new.targ

    2024年04月16日
    瀏覽(27)
  • IDEA直接請求controller,不用postman請求http接口

    IDEA直接請求controller,不用postman請求http接口

    generated-requests.http工具用法 第一步:點擊下面按鈕,HTTP Client ?第二步、生成generated-requests.http文件 ?第三步、更改服務的ip和端口,啟動服務 ?請求實例: 1、post請求,body傳參: 2、get請求 2.1 2.2

    2024年02月15日
    瀏覽(26)
  • mac不用輸入密碼,無需輸入密碼,macOS 設置開機直接免密碼進入桌面

    mac不用輸入密碼,無需輸入密碼,macOS 設置開機直接免密碼進入桌面

    您是否厭倦了每次啟動時輸入密碼?帶MACOS設置打開桌面教程。輸入臺式機的此免費輸入密碼不是設置傳統(tǒng)的操作方法來按下空密碼以按在板上。 特定的操作步驟如下: 1.打開設置系統(tǒng) – 安全性和隱私選項; 2.輸入安全性和隱私設置的接口后,單擊左下角的黃色鎖,然后輸

    2024年02月13日
    瀏覽(23)
  • Android 14 新 API:直接監(jiān)聽截屏操作,不用再觀察媒體文件了~

    Android 14 新 API:直接監(jiān)聽截屏操作,不用再觀察媒體文件了~

    截屏可以說是手機設備最常用的功能了,Android 系統(tǒng)非常重視截屏方面的體驗,近幾年的更新都不忘去優(yōu)化這方面的體驗。 從一開始僅在通知欄提醒已截屏,到 Android 11 支持在左下角生成截屏縮略圖供編輯或分享,再到 Android 12 支持滾動截屏,以及這次的 Android 14 允許 App 直

    2023年04月15日
    瀏覽(19)
  • PHP之Base64+php://filter繞過、disabled_function繞過

    PHP之Base64+php://filter繞過、disabled_function繞過

    目錄 一、Base64+php://filter繞過 1.思路分析? 2.實踐驗證 二、disabled_function繞過 上課講了這樣一道題,一起來看下(以下代碼適用于PHP7.x及以上,5的版本會報錯) 前端就是一個上傳標簽,沒啥可看的 題目要求只能上傳php文件,上傳普通的一句話肯定不行,直接被過濾掉 普通Webs

    2024年02月12日
    瀏覽(20)
  • C++標準模板(STL)- 類型支持 (類型特性,is_union,is_class,is_function)

    C++標準模板(STL)- 類型支持 (類型特性,is_union,is_class,is_function)

    類型特性定義一個編譯時基于模板的結構,以查詢或修改類型的屬性。 試圖特化定義于 type_traits 頭文件的模板導致未定義行為,除了 std::common_type 可依照其所描述特化。 定義于type_traits頭文件的模板可以用不完整類型實例化,除非另外有指定,盡管通常禁止以不完整類型實

    2024年02月06日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包