我不明白为什么会这样?在我的 php 代码中,我试图回应作业状态,它使用函数 newjob 从 MySQL 检索数据库。它打印旧* 作业状态而不是作业状态:旧。客户端和服务器端编程是同时运行还是有编译顺序?
echo '<b>'.'Job Status: '.'</b>' .newjob($row['new_job'])."<br />";
function newjob($num) {
if($num == 1) {
echo "New";
}else{
echo "Old";
}
}
答案 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(),它将从相同的数据驱动。