ホームページ >バックエンド開発 >PHPチュートリアル >eval() については常に問題が発生します
php eval()
<?php// $res="array('price'=>'400','name'=>'kuke','time'=>'1024')";$res="1+3"; var_dump($res); $v=eval($res); var_dump($v); echo $v; foreach($v as $key=>$val){ echo $key."=".$val; }//-------------------------------------------echo "<br/>";//--------------------------------------------$res=array('price'=>'400','name'=>'kuke','time'=>'1024'); var_dump($res); echo "<br/>"; foreach($res as $key=>$val){ echo $key."=".$val."<br>"; }
$v = eval("return $res;");
定義と使用法
eval() 関数は、PHP コードに従って文字列を計算します。
文字列は正当な PHP コードである必要があり、セミコロンで終わる必要があります。
コード文字列内で return ステートメントが呼び出されない場合は、NULL が返されます。コードに解析エラーがある場合、eval() 関数は false を返します。
したがって、次のように記述します: $v=eval("return $res;");
警告: D:mywebarray.php の 8 行目の foreach() に指定された引数が無効です
このエラーは、foreach が配列を走査することしかできないためです。および Object の場合、渡した $v はブール値であるため、エラーが報告されます。
1.
$res="1+3";
eval("$v = "$res";");
var_dump($v)
2.
$v にはデータがありません