在PHP中无序打印出回声

时间:2013-08-08 14:15:29

标签: php html mysql

我不明白为什么会这样?在我的 php 代码中,我试图回应作业状态,它使用函数 newjob MySQL 检索数据库。它打印旧* 作业状态而不是作业状态:旧。客户端和服务器端编程是同时运行还是有编译顺序?

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

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

5 个答案:

答案 0 :(得分:8)

永远不要让你的函数输出一个值。

但只有返回

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

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

答案 1 :(得分:2)

您的功能需要return而不是echo。当你的函数被调用时,第一行要求它返回一个可以连接的值,但是函数不返回任何东西,它只是调用echo

function newJob( $num ) {
    return $num == 1 ? "New" : "Old";
}

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

这应该这样做:

echo '<b>Job Status:</b> ', newjob($row['new_job']), '<br>';
function newjob($num) {
    return ($num ? 'New' : 'Old');
}

答案 4 :(得分:1)

使用Propel之类的ORM可以避免这种编程风格。您可以创建另一个可以根据“作业”对象的状态返回“旧”或“新”字符串的访问者,而不是创建独立函数。

这样,您可以使用字符串getNewDescription()(您在那里的方法)或布尔值isNew(),它将从相同的数据驱动。