intval() 変換と (int) 変換の使用の違いは何でしょうか?
または、関数や定義を含め、この 2 つの違いは何ですか。または使用頻度、効率などに関連します。
コードは次のとおりです:
echo "<br/>数值强制转换:"; $string="2a"; $string1=intval($string); echo '$string1的值:'.$string1.'$string2的值:';//单引号不会输出变量,将原样输出 $string2=(int)($string); echo $string2;
マニュアルでは見つかりません。
これはマニュアルにも記載されています: 引用:
int intval ( mixed $var [, int $base ] )
特定の基数変換を使用して変数 var の整数値を返します (デフォルトは 10 進数)。これだけの違いがある場合、小数の場合には (int) を使用するのが良いでしょうか。
違いはありません。一般的には (int) を使用しますが、float、string、array などもあります。
intval() の場合、パラメータが文字列の場合、文字列内の数字ではない最初の文字の前にある数字文字列で表される整数値を返します。文字列の最初の文字が「-」の場合、2 番目の文字からカウントが開始されます。
パラメータがドット付き数値の場合、その四捨五入された値が返されます。
もちろん、intval()で返される値は4バイトの値で表現できる範囲内(-2147483648~2147483647)です。この範囲を超える値は境界値に置き換えられます。
例:
intval("A")=0; intval(12.3223)=12; intval("1123Asdfka3243")=1123;
int();
例:
$a=0.13; $b=(int)$a; //$b=0; $a=0.99; $b=(int)$a; //$b=0; $a=1.01; $b=(int)$a; //$b=1; $a=1.99; $b=(int)$a; //$b=1;
PHP 文字列を int に変換
場合によっては、変数の値を int 形式で持つことが重要です。たとえば、訪問者がフォームに年齢フィールドを入力する場合、これは int である必要があります。ただし、$_POST 配列では、文字列として取得されます。
PHP 文字列を int に変換するのは簡単です。キャストする前に変数の型を使用する必要があるため、(INT) を使用する必要があります。これを行う方法の例を次に示します:
コードは次のとおりです:
$str = "10"; $num = (int)$str;
コードが実際に機能することを確認したい場合は、=== 演算子を使用できます。この演算子は値だけでなく型もチェックします。そのようなコードは次のようになります:
コードは次のとおりです:
$str = "10"; $num = (int)$str; if ($str === 10) echo "String"; if ($num === 10) echo "Integer";
もう 1 つ質問が残っています。文字列が単なる数字の文字列ではない場合はどうなるでしょうか。つまり、文字列内に他の文字が含まれているということです。この場合、変換操作は最善を尽くし、スペースのみが存在し、数値の後に有効な文字がない場合に文字列を変換できます。仕組みは次のとおりです:
「10」 - > 10
「10.5」 - > 10
「10,5」 - > 10
「10」 - > 10
「10」 - > 10
「10テスト」 - > 10
"テスト10" - > 0