settype関数による型の変換がうまくいかない

スポンサーリンク

settype関数は変数の型を変換できる関数ですが、使い方を間違えないようにしましょう。次の例では、settype関数を使って変数を数値に変換しようとしていますが、意図した「10」と表示されずに「1」と表示されます。

<?php
$a = "10円";
$a = settype($a, "int");
echo $a;
?>

○実行結果

1

うまくいかない理由は、settype関数の戻り値は処理がうまくいったかどうを示すtrueまたはfalseだからです。つまり、型の変換結果は元の変数に格納する必要はありません。

<?php
$a = "10円";
settype($a, "int");
echo $a;
?>

○実行結果

10

単純に変数を数値に変換するだけなら、settype関数よりintval関数の方が簡単です。

<?php
$a = "10円";
echo intval($a);
?>

○実行結果

10

PHPの基礎が身に付いたかチェックするなら

PHP「直す力」養成ドリル
スポンサーリンク