ホームページ  >  記事  >  バックエンド開発  >  詳細な PHP カーネル php 配列、phparray_PHP チュートリアル

詳細な PHP カーネル php 配列、phparray_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-12 09:05:18797ブラウズ

php in array関数、phparrayのphpカーネルの詳細

まずはウォーミングアップとしてphp in array関数の基礎知識を紹介します。

定義と使用法

in_array() 関数は、配列内で指定された値を検索します。

文法
in_array(値,配列,型)

パラメータ 説明
価値 必須。配列内で検索する値を指定します。
配列 必須。検索する配列を指定します。
タイプ オプション。このパラメータを true に設定すると、検索されたデータの型と配列の値が同じであるかどうかがチェックされます。

説明

指定された値 value が配列配列に存在する場合は true を返します。 3 番目のパラメーターが true に設定されている場合、関数は要素が配列内に存在し、指定された値と同じデータ型を持つ場合にのみ true を返します。

パラメータが配列内に見つからない場合、関数は false を返します。

注: value パラメーターが文字列で、type パラメーターが true に設定されている場合、検索では大文字と小文字が区別されます。

偶然コードを見てしまった

リーリー

テストしてみました

[root@dev tmp]# time php b.php
実質0分9秒517秒
ユーザー 0分4.486秒
システム0分0.015秒

実際には9秒かかります

in_array は次のようになります

コードをコピーします コードは次のとおりです:
bool in_array (mixed $needle , array $haystack [, bool $strict = FALSE ] )

厳密が設定されていない場合は、緩和された比較を使用して、干し草の山で針を検索します。

検索する値。針が文字列の場合、比較では大文字と小文字が区別されます。

干し草の山

この配列。

厳しい

3 番目のパラメータ strict の値が TRUE の場合、in_array() 関数は針の種類が干し草の山のものと同じかどうかもチェックします。

それではソースコードを見てみましょう

最初のステップは ext/standard/array.c ファイルです

リーリー

ところで、array_searchを見てみましたが、基本的にin_arrayの内部実装と同じであることがわかりました

関数のパラメータは./zend.hにあります

#define INTERNAL_FUNCTION_PARAM_PASSTHRU ht、return_value、return_value_ptr、this_ptr、return_value_used TSRMLS_CC

2 番目のステップは、ext/standard/array.c ファイル内の php_search_array プロトタイプを表示することです

リーリー

strict の値の違いには 2 つの比較方法があることがわかりました。 2 つの関数の違いを見てみましょう。

is_identical_functionは型が同じかどうかをチェックします リーリー

is_equal_function は型が同じかどうかをチェックしないため、暗黙的な変換が必要です

リーリー

http://www.bkjia.com/PHPjc/1069341.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/1069341.html技術記事 phparray は、配列での php の php カーネルを深く掘り下げ、まずウォームアップとして配列関数での php の基本知識を紹介します。 定義と使用法 in_array() 関数は、配列内で指定された値を検索します。 文法_...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。