国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP 三種方式實(shí)現(xiàn)鏈?zhǔn)讲僮?

AbnerMing / 1326人閱讀

摘要:新數(shù)組的值將被插入到數(shù)組的開頭。和都是動(dòng)態(tài)調(diào)用函數(shù)的方法,區(qū)別在于參數(shù)的傳遞方式不同。方法三不使用魔法函數(shù)來實(shí)現(xiàn)只需要修改為函數(shù)即可重點(diǎn)在于,返回指針,方便調(diào)用后者函數(shù)。

在php中有很多字符串函數(shù),例如要先過濾字符串收尾的空格,再求出其長度,一般的寫法是:

strlen(trim($str))

如果要實(shí)現(xiàn)類似js中的鏈?zhǔn)讲僮鳎热缦裣旅孢@樣應(yīng)該怎么寫?

$str->trim()->strlen()    

下面分別用三種方式來實(shí)現(xiàn):

方法一、使用魔法函數(shù)__call結(jié)合call_user_func來實(shí)現(xiàn)

思想:首先定義一個(gè)字符串類StringHelper,構(gòu)造函數(shù)直接賦值value,然后鏈?zhǔn)秸{(diào)用trim()strlen()函數(shù),通過在調(diào)用的魔法函數(shù)__call()中使用call_user_func來處理調(diào)用關(guān)系,實(shí)現(xiàn)如下:

value = $value;
    }

    function __call($function, $args){
        $this->value = call_user_func($function, $this->value, $args[0]);
        return $this;
    }

    function strlen() {
        return strlen($this->value);
    }
}

$str = new StringHelper("  sd f  0");
echo $str->trim("0")->strlen();

終端執(zhí)行腳本:

php test.php 
8
方法二、使用魔法函數(shù)__call結(jié)合call_user_func_array來實(shí)現(xiàn)
value = $value;
    }

    function __call($function, $args){
        array_unshift($args, $this->value);
        $this->value = call_user_func_array($function, $args);
        return $this;
    }

    function strlen() {
        return strlen($this->value);
    }
}

$str = new StringHelper("  sd f  0");
echo $str->trim("0")->strlen();

說明:

array_unshift(array,value1,value2,value3...)

array_unshift() 函數(shù)用于向數(shù)組插入新元素。新數(shù)組的值將被插入到數(shù)組的開頭。

call_user_func()call_user_func_array都是動(dòng)態(tài)調(diào)用函數(shù)的方法,區(qū)別在于參數(shù)的傳遞方式不同。

方法三、不使用魔法函數(shù)__call來實(shí)現(xiàn)

只需要修改_call()trim()函數(shù)即可:

public function trim($t)
{
    $this->value = trim($this->value, $t);
    return $this;
}

重點(diǎn)在于,返回$this指針,方便調(diào)用后者函數(shù)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/30526.html

相關(guān)文章

  • php實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)】鏈?zhǔn)?/em>隊(duì)列

    摘要:什么是鏈?zhǔn)疥?duì)列隊(duì)列是一種先進(jìn)先出的存儲(chǔ)結(jié)構(gòu)是一種特殊的線性表,于它只允許在表的前端進(jìn)行刪除操作,而在表的后端進(jìn)行插入操作。 什么是鏈?zhǔn)疥?duì)列 隊(duì)列是一種先進(jìn)先出的存儲(chǔ)結(jié)構(gòu),是一種特殊的線性表,于它只允許在表的前端(front)進(jìn)行刪除操作,而在表的后端(rear)進(jìn)行插入操作。通常隊(duì)列可以分為順序隊(duì)列和鏈?zhǔn)疥?duì)列兩種實(shí)現(xiàn),順序隊(duì)列顧名思義就是采用順序存儲(chǔ),如以數(shù)組方式來實(shí)現(xiàn),鏈?zhǔn)疥?duì)列采用鏈...

    王晗 評(píng)論0 收藏0
  • micro activerecord library in PHP(一個(gè)微型的PHP實(shí)現(xiàn)的AR庫)

    摘要:一個(gè)微型的實(shí)現(xiàn)的庫體積很小帶詳盡的注釋總共只有行支持鏈?zhǔn)秸{(diào)用支持關(guān)系前言最開始接觸是在學(xué)習(xí)的時(shí)候,那個(gè)時(shí)候覺得用操作數(shù)據(jù)庫真的是太方便了。但是已經(jīng)算是一個(gè)小型的庫了。同樣的還提供了簡寫的以及,等接口函數(shù)。 一個(gè)微型的PHP實(shí)現(xiàn)的AR庫 體積很小帶詳盡的注釋總共只有400行支持鏈?zhǔn)秸{(diào)用支持關(guān)系 前言 最開始接觸ActiveRecord是在學(xué)習(xí)Yii的時(shí)候,那個(gè)時(shí)候覺得用AR操作數(shù)據(jù)庫真的...

    i_garfileo 評(píng)論0 收藏0
  • php鏈?zhǔn)?/em>操作實(shí)現(xiàn)四則鏈?zhǔn)?/em>運(yùn)算

    重點(diǎn)在于,返回$this指針,方便調(diào)用后者函數(shù)。 Operation.php

    maxmin 評(píng)論0 收藏0
  • jQuery插件教程

    摘要:就是內(nèi)部作為全局函數(shù)的插件添加到內(nèi)核上去的。選擇器插件擴(kuò)充自己喜歡的一些選擇器。在插件里的,經(jīng)過了一些封裝處理,就是表示對(duì)象。調(diào)用時(shí),字體大小會(huì)運(yùn)用插件里的默認(rèn)值 jQuery插件的分類 jQuery插件有很多,有UI類,表單驗(yàn)證,輸入類,特效類,Ajax類,滑動(dòng)類,導(dǎo)航類,工具類,動(dòng)畫類等等。 jQuery的插件主要分為三類: 1、封裝對(duì)象方法的插件:也就是基于某個(gè)DOM元素的...

    Arno 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<