PHP if语句在HTML属性中

时间:2017-06-07 11:46:01

标签: php html if-statement

我在想什么。我正在看其他学员的代码(谁离开了,所以我不能问任何事情)。我看到以下内容:

<input type="text" 
name="name" 
class="form-control" 
placeholder="name" 
value="<?php if (isset($something)): echo 'bla'; 
             else: if(!empty($somethingelse)): echo 'bla2'; endif;"
>

如果我自己这么说,这实际上看起来很难看。我想知道:这实际上是一个“好”/好的方式,还是真的像我想的那样糟糕?

3 个答案:

答案 0 :(得分:1)

我总是喜欢保持分离的php和html部分。我的建议在这里:

<?php
    $value = isset($something)
        ? 'bla'
        : 'bla2'
    ;
?>

<input type="text" 
    name="name" 
    class="form-control" 
    placeholder="name" 
    value="<?php echo $value; ?>">

如果你开始使用树枝,你可以越来越多地改进它。正如您所看到的,这里没有代码:它只是一个视图。

<input type="text" 
    name="field_name" 
    class="form-control" 
    placeholder="field name" 
    value="{{ field_name }}">

在某些时候,您可以发送到该视图变量并将视图中的分离模型(数据和变量)保存在其中:

$value = isset($something)
    ? 'bla'
    : 'bla2'
;

$this->render('path/to/template.html.twig', [
    'field_name' => $value,
]);

答案 1 :(得分:0)

试试这个

  <input type="text" 
    name="name" 
    class="form-control" 
    placeholder="name" 
    value="<?php echo isset($something) ? 'bla' : (!empty($somethingelse) ? 'bla2' : ''); ?>" >

答案 2 :(得分:0)

试试这个 -

<?php 
    if (isset($something)){
        $value = 'bla'; 
    }
    else if(!empty($somethingelse)){
       $value = 'bla2';
    }
?>

<input type="text" name="name" class="form-control" placeholder="name" 
value="<?php echo $value ?>" >
  

首先我根据条件在$value设置值,然后我在value属性中回显该值。