<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>

            PHP函數中isset和array-key-exists的差異

            時間:2025-09-10 06:35:21 php語言

            PHP函數中isset和array-key-exists的差異

              本文將為大家講解PHP函數中isset和array_key_exists的差異,歡迎學習!

              在判斷某個 PHP 數組的索引值是否存在,一般會使用 isset 和 array_key_exists 兩種方法。

              isset($a['key'])

              array_key_exists('key', $a)

              array_key_exists 確切地告訴你,數組是否存在某個鍵,而 isset 則只是返回鍵值是否為 null 的狀態。也就是說,假設給定下面的數組:

              $a = array('key1' => '123', 'key2' => null);

              使用這兩個方法判斷鍵值存在情況,結果如下:

              isset($a['key1']); /pic/p>

              array_key_exists('key1', $a); /pic/p>

              isset($a['key2']); /pic/p>

              array_key_exists('key2', $a); /pic/p>

              從 PHP 引擎本身來說,底層都是 C 語言的實現,array_key_exists 和 isset 應該都是很快的。如果運算次數上千次上萬次,這種情況下 isset 的性能應該更為顯著。

              【相關閱讀】PHP函數similar_text()原理分析

              PHP有個計算兩個字符串相似度的函數similar_text(),可以得出一個百分比來表示兩個字符串的相似程度。效果如下:

              similar_text('aaaa', 'aaaa', $percent);

              var_dump($percent);

              /pic/p>

              similar_text('aaaa', 'aaaabbbb', $percent);

              var_dump($percent);

              /pic/p>

              similar_text('abcdef', 'aabcdefg', $percent);

              var_dump($percent);

              /pic/p>

              利用這個函數,可以用來做模糊搜索的功能,或者其他需要模糊匹配的功能。最近我在驗證碼識別研究中的特征匹配一步上涉及到了這個函數。

              但這個函數具體使用了怎樣的算法呢?我研究了他的底層實現,總結為三步:

              (1)找出兩個字符串中相同部分最長的一段;

              (2)再用同樣的方法在剩下的兩段中分別找出相同部分最長的一段,以此類推,直到沒有任何相同部分;

              (3)相似度 = 所有相同部分的長度之和 * 2 / 兩個字符串的長度之和;

              我研究的源代碼版本是PHP 5.4.6,相關的代碼位于文件php-5.4.6/ext/standard/string.c的第2951~3031行。以下是我加過注釋后源代碼。

              /pic/p>

            【PHP函數中isset和array-key-exists的差異】相關文章:

            php empty()和isset()的區別12-24

            PHP中isset()與empty()的使用區別詳解02-18

            PHP中iconv函數知識01-28

            php中rename函數用法11-27

            基于PHP中的常用函數精粹07-31

            PHP時間和日期函數詳解03-02

            PHP的語言結構和函數的區別07-24

            php中iconv函數使用方法08-10

            php中in-array函數用法分析01-18

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院