ThinkPHP容器之Countable巧用

本文將講解一個(gè)冷門(mén)的知識(shí)點(diǎn),如果不去看源碼時(shí)根本不會(huì)了解的一個(gè)知識(shí)點(diǎn),那就是countTable的使用。

六、Container容器類(lèi)剖析之Countable巧用

關(guān)于Countable這塊內(nèi)容一直沒(méi)想好是否是文章的形式寫(xiě)出展現(xiàn)給大家,但是在后期閱讀源碼時(shí)大量的出現(xiàn)了Countable的應(yīng)用。

為了大家能看懂每一個(gè)技術(shù)點(diǎn),咔咔還是寫(xiě)了出來(lái)。

這個(gè)知識(shí)點(diǎn)只是為了給大家展示一下怎么用,在后文中會(huì)提到跟count的關(guān)聯(lián)。

在文件thinkphp/library/think/Container.php中,就可以直接看到使用了Countable接口,并且實(shí)現(xiàn)了它!

ThinkPHP容器之Countable巧用
在這里插入圖片描述

來(lái)到Countable這接口中,我們只能看到一個(gè)方法就是count().

根據(jù)代碼中Count elements of an object這行注釋可以了解到,這個(gè)接口是計(jì)算對(duì)象的元素

在看源碼的過(guò)程中我們需要對(duì)其注釋先看一遍,即使不會(huì)英文那也有翻譯軟件呢!會(huì)給你提供更好的理解。

ThinkPHP容器之Countable巧用根據(jù)PHP文檔的說(shuō)明在深入了解一下。

文檔說(shuō)明當(dāng)你執(zhí)行count()方法時(shí)就相當(dāng)于在執(zhí)行上邊的abstract public Countable::count ( void ) : int抽象方法。

ThinkPHP容器之Countable巧用實(shí)戰(zhàn)案例

光說(shuō)不干,事事落空;又說(shuō)又干,馬到成功。直接開(kāi)干

新建文件kaka/container/countableTest.php,并且添加以下內(nèi)容

ThinkPHP容器之Countable巧用接著在文件application/index/controller/Container.php中學(xué)會(huì)使用Countable。

這里注意一下用法,是直接使用count();

ThinkPHP容器之Countable巧用ThinkPHP容器之Countable巧用

Countable中的count()跟平時(shí)使用count()方法有什么區(qū)別

順便看一下PHP源碼中的解釋

可以看到第一個(gè)參數(shù)可以是數(shù)組也可是是countable

咔咔的理解是Countable只是重寫(xiě)了SPL中的count方法,為了就是方便定制自己需要的統(tǒng)計(jì)規(guī)則而已。

<span style="display: block; background: url(https://my-wechat.mdnice.com/point.png); height: 30px; width: 100%; background-size: 40px; background-repeat: no-repeat; background-color: #282c34; margin-bottom: -7px; border-radius: 5px; background-position: 10px 10px;"></span>int?count?(?mixed?<span class="hljs-variable" style="color: #d19a66; line-height: 26px;">$array_or_countable</span>?[,?int?<span class="hljs-variable" style="color: #d19a66; line-height: 26px;">$mode</span>?=?COUNT_NORMAL?]?)<br>

接下來(lái)就是針對(duì)框架里邊的容器進(jìn)行剖析,一步一步的追溯到根源。

堅(jiān)持學(xué)習(xí)、堅(jiān)持寫(xiě)博、堅(jiān)持分享是咔咔從業(yè)以來(lái)一直所秉持的信念。希望在偌大互聯(lián)網(wǎng)中咔咔的文章能帶給你一絲絲幫助。我是咔咔,下期見(jiàn)。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊7 分享