2回目の反復で function を再宣言しようとするため、コードは致命的なエラーで終了しますmyfunction
。そのため、配列の最初の値のみを出力しています。
function_exists()
その致命的なエラーを回避するために、次のような関数を使用して、その関数が既に定義されているかどうかを確認できます。
$new = array(1,2,3,4);
for($i=0;$i<=3;$i++)
{
$val = $new[$i];
if(!function_exists('myfunction'))
{
function myfunction($value) {
//Do something
}
}
echo $val;
}
PHP はスクリプト言語であり、for ループ内または if ステートメント内で関数を宣言することは構文的に正しいですが、それは悪い習慣であり、後で多くのエラーが発生する可能性があります。
最善の方法は、ループの外で関数を宣言し、必要に応じて次のようにループ内から呼び出すことです。
<?php
function myfunction($value) {
//Do something
}
$new = array(1,2,3,4);
for($i=0;$i<=3;$i++)
{
$val = $new[$i];
myfunction($value); //may you was intended to pass $val here?
echo $val;
}