PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

0が渡された場合にphpのin_arrayがtrueを返すのはなぜですか?


in_arrayがTrueを返す理由は、文字列から数値への変換である可能性があります。文字列が関数に渡されると、検索する必要のある値である0が返されます。

PHPはルーズジャグリングを使用します。つまり、要素を比較するときに===の代わりに==を使用します。したがって、タイプではなく、それらの値が比較されます。

もう1つの理由は、型ジャグリングです。これは、変数型がコードのコンテキストで処理されることを意味します。

たとえば、float値が変数に割り当てられると、それは浮動小数点値になります。文字列が整数にキャストされたときのように動作します

この種の動作を回避するために、3番目のパラメーターを渡すことができます。これは、厳密モードでデータを比較し、値とタイプが比較されます。

以下は、文字列が渡されたときの関数の動作です-

echo intval("Hello");

出力

これにより、次の出力が生成されます-

0

  1. PHPのstrtok()関数

    strtok()関数はtokenize文字列です。文字列トークンを返します。 構文 strtok(str, split) パラメータ str −分割する文字列 分割 −1つ以上の分割文字を指定します 戻る strtok()関数は文字列トークンを返します。 例 以下は例です- <?php    $str = "This is it!";    $token = strtok($str, " ");    while ($token !== false){  

  2. PHPのstrstr()関数

    strstr()関数は、文字列の最初の出現を見つけるために使用されます。 注 −関数では大文字と小文字が区別されます。 構文 strstr(str,search,before) パラメータ str −検索する文字列 検索 −検索する文字列 前 −デフォルトが「false」のブール値。 「true」に設定すると、検索パラメータが最初に出現する前の文字列の一部が返されます。 戻る strstr()関数は、文字列の残りの部分を返します。文字列が見つからない場合はfalseを返します。 例 以下は例です- 出力 ad Pitt! 例 以下は例です-