PHPのデータ型の閲覧とデータ型の判定
データの種類がわかった後でのみ次のステップに進(jìn)むことができます。後で、カスタム関數(shù) (関數(shù)) についてさらに知識(shí)を?qū)Wぶことができます。
シーン シミュレーションを?qū)g行してみましょう: (注: この関數(shù)の書き方を今知る必要はありません。その方法は後で説明します)
スマート関數(shù) (関數(shù)) を作成できるとします。生徒の成績(jī)のスプレッドシートでファイルを開く機(jī)能。この機(jī)能は非常に高度です。
1. 人物が 1 人の場(chǎng)合、スコアは整數(shù)または浮動(dòng)小數(shù)點(diǎn)変數(shù)で返されます。
2. 2人以上いる場(chǎng)合は配列型の変數(shù)を返し、その配列には複數(shù)人のスコアが含まれます
3. 2人以上いない場(chǎng)合はブール型の変數(shù)を返し、変數(shù)の値はfalseになります
上記のシナリオのシミュレーションを通じて、関數(shù) (関數(shù)) が異なるデータ型を返す可能性があることがわかりました。したがって、さまざまなタイプに基づいてさまざまな操作を行うことができます。
データ型の決定は非常に重要であり、厳密にマスターする必要があります。
【暗黙知のポイント】型を表示する関數(shù)、型を取得する関數(shù)、型を判定する関數(shù)
データ型を見る
1.gettype(変數(shù)に渡す)で変數(shù)の型を取得できる
2 .var_dump (変數(shù)を渡す) は変數(shù)の型と値を出力します
<?php //聲明一個(gè)變量88.8,你可以自己多做幾次實(shí)驗(yàn)換成其他類型看看$type輸出是多少 $float = 88.8; $type = gettype($float); echo $type; ?>
<?php //多換幾個(gè)類型試試 $str = '你喜歡尊上還是喜歡殺仟陌?'; var_dump($str); ?>
でデータ型を決定します
is_* 系列の関數(shù)を使用します。 is_types 一連の関數(shù)は、何かが特定のタイプであるかどうかを判斷するために使用されます。このタイプの場(chǎng)合は true を返し、そうでない場(chǎng)合は false を返します。
is_int 整數(shù)ですか
is_bool ブール値ですか
is_float 浮動(dòng)小數(shù)點(diǎn)ですか
is_string 文字列ですか
is_array 配列ですか
is_object オブジェクトですか
is_null 空ですか
is_resource リソースですか
is_scalar スカラーですか
is_numeric は數(shù)値型ですか? is_callable は関數(shù)ですか
<?php //is_* 系列函數(shù)有個(gè)特點(diǎn),就是如果是這個(gè)類型就返回的是真。不是這個(gè)數(shù)據(jù)類型就返回的是假 //聲明類型為假 $fo = false; if(is_bool($fo)){ echo '執(zhí)行真區(qū)間'; }else{ echo '執(zhí)行假區(qū)間'; } //檢查未聲明的變量$p是否為空,為空就執(zhí)行真區(qū)間 if(is_null($p)){ echo '執(zhí)行真區(qū)間'; }else{ echo '執(zhí)行假區(qū)間'; } echo "<br/>"; //字符串類型的數(shù)值,看看執(zhí)行的是真還是假 $str = '18.8'; if(is_numeric($str)){ echo '執(zhí)行真區(qū)間'; }else{ echo '執(zhí)行假區(qū)間'; } echo "<br/>"; //把sca的值換成整型、浮點(diǎn)、布爾和字符串試試 $sca = true; //如果為標(biāo)量,執(zhí)行真區(qū)間 if(is_scalar($sca)){ echo '執(zhí)行真區(qū)間'; }else{ echo '執(zhí)行假區(qū)間'; } echo "<br/>"; //換成echo,is_int試試,為什么echo執(zhí)行假區(qū)間呢? if(is_callable('var_dump')){ echo '執(zhí)行真區(qū)間'; }else{ echo '執(zhí)行假區(qū)間'; } ?>
注: is_types は覚えやすいです。 is_ の前後の型をたどるだけです。 変數(shù): int、float、bool、string 混合型: 配列、オブジェクト特殊な型: null、リソース (リソース)、コールバック (コールバック) 最後の実験で echo が偽の間隔を?qū)g行したのはなぜですか?
答え: echo は関數(shù)ではないため、基本的な構(gòu)文です。今のところ、関數(shù)と基本構(gòu)文の違いを理解する必要はありません。理解しても理解していなくても、実際の開発には影響しません。あなたにはこの知識(shí)があることを知っておいてください。