2

なぜこれが起こるのですか?私のphpコードでは、関数newjobを使用してMySQLからデータベースを取得するジョブステータスをエコーし​​ようとしています。Job Status: Oldの代わりにOld* Job Status:が出力されます。クライアント側とサーバー側のプログラミングは同時に実行されますか、それともコンパイルする順序がありますか?

echo '<b>'.'Job Status: '.'</b>' .newjob($row['new_job'])."<br />";

function newjob($num) {
if($num == 1) {
echo "New";
}else{
    echo "Old";
    }
}
4

5 に答える 5

8

関数に値を出力させないでください。

でも返すだけ。

echo '<b>'.'Job Status: '.'</b>' .newjob($row['new_job'])."<br />";

function newjob($num) {
    if($num == 1) {
        return "New";
    }else{
        return "Old";
    }
}
于 2013-08-08T14:18:16.173 に答える
2

あなたの関数は、returnではなくする必要がありechoます。関数が呼び出されると、最初の行は連結可能な値を返すことを期待していますが、関数は何も返さず、単にecho呼び出し時に s を返します。

function newJob( $num ) {
    return $num == 1 ? "New" : "Old";
}
于 2013-08-08T14:17:18.243 に答える
1

これはそれを行う必要があります:

echo '<b>Job Status:</b> ', newjob($row['new_job']), '<br>';
function newjob($num) {
    return ($num ? 'New' : 'Old');
}
于 2013-08-08T14:20:14.057 に答える
1
echo '<b>'.'Job Status: '.'</b>' .newjob($row['new_job'])."<br />";

function newjob($num) {
if($num == 1) {
return "New";
}else{
    return "Old";
    }
}
于 2013-08-08T14:18:28.163 に答える