ホームページ  >  記事  >  バックエンド開発  >  PHPの弱い型付け言語における型判定の解析例

PHPの弱い型付け言語における型判定の解析例

黄舟
黄舟オリジナル
2017-08-10 11:49:201326ブラウズ

この記事では、PHPの弱い型付け言語における型判定操作を主に紹介し、PHPにおけるデータ型の変換、判定、関数の使用スキルと注意点をサンプルの形で分析しています。この記事では、PHP の弱い型付け言語での型判定操作について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

1. PHP が数値と文字列を比較したり、演算を実行したりする場合、PHP は文字列を数値に変換してから比較します。 PHP 変換の規則は、文字列が数字で始まる場合はその先頭の数字が変換結果として使用され、そうでない場合は 0 が出力されます。

例: 123abc は変換後 123 になるはずで、abc は 0、0==0 になります。詳細については、公式マニュアルを参照してください。整数と文字列を比較する場合は、文字列が返されます。は整数

$a = ($b=4)+5;
echo $a;  //9
echo &#39;<p>&#39;;
var_dump(1==&#39;1a&#39;);  //true
echo &#39;<p>&#39;;
var_dump(1==&#39;2a&#39;);  //false
echo &#39;<p>&#39;;
var_dump(1==&#39;a1&#39;);  //false
echo &#39;<p>&#39;;
var_dump("1"==&#39;1a&#39;);  //false
echo &#39;<p>&#39;;
var_dump(&#39;51a&#39;+6);  //57
echo &#39;<p>&#39;;
var_dump(&#39;a51&#39;+6);  //6

2 に変換されます。PHP では、== は最初に型変換を実行してから比較しますが、=== は最初に型を比較します。型が異なる場合は、等しくないことが直接返されます。 . 次の例を参照してください

$a = null;
$b = &#39;&#39;;
$c = 0;
echo ($a == $b) ? 1 : 0;  // 输出1
echo ($a === $b) ? 1 : 0;  // 输出0
echo ($a == $c) ? 1 : 0;  // 输出1
echo ($a === $c) ? 1 : 0;  // 输出0
echo ($b == $c) ? 1 : 0;  // 输出1
echo ($b === $c) ? 1 : 0;  // 输出0

3. php

のempty関数とisset関数1) 変数が0、"0"、null、''、false、array()、の場合空の関数を使用すると、すべての戻り値が true になります

2) 変数が未定義または null の場合、isset 関数は false を返し、他の関数は明らかに true ではありません。これは、abc 文字列に a が含まれているかどうかを判断するためです。期待される結果は 1 であるはずですが、実際の結果は 2 です。これは、strpos 関数が目的の文字列と一致しない場合に false を返し、検索文字列のインデックス位置で目的の文字列を返すためです。

$a = null;
$b = &#39;&#39;;
$c = 0;
$d = "0";
$e = false;
$f = array();
var_dump(empty($a));  //true
echo &#39;<p>&#39;;
var_dump(empty($b));  //true
echo &#39;<p>&#39;;
var_dump(empty($c));  //true
echo &#39;<p>&#39;;
var_dump(empty($d));  //true
echo &#39;<p>&#39;;
var_dump(empty($e));  //true
echo &#39;<p>&#39;;
var_dump(empty($f));  //true
echo &#39;<p>&#39;;
var_dump(isset($a));  //false
echo &#39;<p>&#39;;
var_dump(isset($b));  //true
echo &#39;<p>&#39;;
var_dump(isset($c));  //true
echo &#39;<p>&#39;;
var_dump(isset($d));  //true
echo &#39;<p>&#39;;
var_dump(isset($e));  //true
echo &#39;<p>&#39;;
var_dump(isset($f));  //true
echo &#39;<p>&#39;;
var_dump(isset($g));  //false

を定数イコールに変更するのが正しいです。

5.改行にはダブルクォーテーションが必要です


$sms = "abc";
if(strpos($sms,&#39;a&#39;) != false ){
  echo 1;
}else{
  echo 2;
}

このように書くと、ファイルを開くと次のようになります2016-09-02 08:04:04rn2016-09-02 08 :04:05rn2016-09-02 08: 04:05rn2016-09-02 08:04:05rn2016-09-02 08:04:22

正しい書き方はrnで、二重引用符で囲みます

以上がPHPの弱い型付け言語における型判定の解析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。