奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

php語言

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

時間:2024-09-17 18:20:07 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']); // true

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

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

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

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

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

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

  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)

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

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

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

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

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

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

  //找出兩個字符串中相同部分最長的一段

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

php empty()和isset()的區別09-28

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

php中in-array函數用法分析10-03

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

PHP中php://input和$-POST的區別08-26

如何正確區分PHP isset()與empty()的使用06-12

php常用的系統函數05-05

PHP類與構造函數07-01

PHP函數的區別及用法10-27

PHP數組函數知識10-24

主站蜘蛛池模板: 尤溪县| 宁武县| 奎屯市| 鹿泉市| 伊吾县| 本溪市| 兴山县| 宁安市| 文昌市| 清涧县| 南京市| 鄄城县| 安宁市| 会宁县| 丰县| 许昌市| 丹巴县| 通化市| 南丰县| 新安县| 枝江市| 六枝特区| 静宁县| 屯留县| 浮山县| 合作市| 南木林县| 奉新县| 松江区| 长春市| 四子王旗| 广宗县| 沙田区| 茶陵县| 仪征市| 承德县| 惠水县| 汤阴县| 左云县| 宣恩县| 莲花县|