PHP - 这段代码出了什么问题?

时间:2015-06-14 10:39:28

标签: php

<?

function foo($return = false) {
    $x = '12345';

    $return ?
    return $x : // here it fails
    echo $x;
}

echo foo(true);

?>

它说“解析错误:语法错误,意外'返回'(T_RETURN)...

为什么!?:)

2 个答案:

答案 0 :(得分:2)

您不能以这种方式使用内联ifs。它们通常使用如下:

echo ($return ? x : "false");

您的代码应该是这样的:

<?

function foo($return = false) {
    $x = '12345';

    if($return)
    {
        return $x
    }
    else
    {
        echo $x;
    }
}

echo foo(true);

?>

(对某些人来说比较混乱),你不需要添加else语句,好像满足if语句一样,它会返回一个值,从而退出函数,这意味着如果不满足if语句,它仍会转到echo

<?

function foo($return = false) {
    $x = '12345';

    if($return)
    {
        return $x
    }
    echo $x;
}

echo foo(true);

?>

答案 1 :(得分:0)

您可以使用print函数而不是echo:

def index
    @japas = Japa.where(user_id: current_user.id) 
end

更优雅的是Styphons的评论方式:

  <% @japas.each do |japa| %>   
     <tr>
      <td><%= japa.created_at %></td>
      <td><%= japa.rounds %></td>
     </tr>
  <% end %>