亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

php語(yǔ)言 百分網(wǎng)手機(jī)站

PHP函數(shù)中isset和array-key-exists的差異

時(shí)間:2020-09-30 09:30:15 php語(yǔ)言 我要投稿

PHP函數(shù)中isset和array-key-exists的差異

  本文將為大家講解PHP函數(shù)中isset和array_key_exists的差異,歡迎學(xué)習(xí)!

  在判斷某個(gè) PHP 數(shù)組的索引值是否存在,一般會(huì)使用 isset 和 array_key_exists 兩種方法。

  isset($a['key'])

  array_key_exists('key', $a)

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

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

  使用這兩個(gè)方法判斷鍵值存在情況,結(jié)果如下:

  isset($a['key1']); // true

  array_key_exists('key1', $a); // true

  isset($a['key2']); // false

  array_key_exists('key2', $a); // true

  從 PHP 引擎本身來說,底層都是 C 語(yǔ)言的實(shí)現(xiàn),array_key_exists 和 isset 應(yīng)該都是很快的。如果運(yùn)算次數(shù)上千次上萬次,這種情況下 isset 的性能應(yīng)該更為顯著。

  【相關(guān)閱讀】PHP函數(shù)similar_text()原理分析

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

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

  var_dump($percent);

  //float(100)

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

  var_dump($percent);

  //float(66.666666666667)

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

  var_dump($percent);

  //float(85.714285714286)

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

  但這個(gè)函數(shù)具體使用了怎樣的算法呢?我研究了他的'底層實(shí)現(xiàn),總結(jié)為三步:

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

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

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

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

  //找出兩個(gè)字符串中相同部分最長(zhǎng)的一段



【PHP函數(shù)中isset和array-key-exists的差異】相關(guān)文章:

PHP中isset()與empty()的使用區(qū)別詳解06-07

PHP中iconv函數(shù)知識(shí)10-17

PHP的語(yǔ)言結(jié)構(gòu)和函數(shù)的區(qū)別09-19

PHP類和對(duì)象的相關(guān)函數(shù)講解11-26

PHP內(nèi)部函數(shù)的定義09-28

PHP數(shù)組函數(shù)知識(shí)10-13

PHP函數(shù)知識(shí)總結(jié)09-27

PHP基本函數(shù)介紹09-04

PHP常用函數(shù)匯總08-27

PHP常用函數(shù)總結(jié)06-20