简单的PHP如果不工作

时间:2017-11-10 13:37:06

标签: php

我想把它组合成一个if else,但无论我在做什么都打破了?有任何想法吗 ?我是PHP的新手。我想要做的是根据$ perms为FALSE改变输入。

   <? if ($perms['user_profiles|edit_billable']===TRUE) { ?> 
    <div class="field">
        <label><?=l(273)?></label>
        <div class="input">
               <input type="checkbox" name="billable" value="1" data-bind="checked: userProfile().billable, disable:isBillable();">
        </div>
      </div>
    </div>
<? } ?>

   <? if ($perms['user_profiles|edit_billable']===FALSE) { ?>
    <div class="field">
        <label><?=l(273)?></label>
        <div class="input">
     <!-- This is where the else would go -->     
                <input type="checkbox" name="billable" value="1" data-bind="checked: userProfile().billable, enable:isBillable();">
        </div>
      </div>
    </div>
<? } ?>

4 个答案:

答案 0 :(得分:1)

在我们获取这些错误日志之前,我们不知道这是否确实解决了您的问题,但至少我们可以通过使用三元组并仅输出更改的部分来将代码配对相当多。

<? $data-bind = $perms['user_profiles|edit_billable'] ? "checked: userProfile().billable, enable:isBillable();" : "checked: userProfile().billable, disable:isBillable();" ?> 
<div class="field">
    <label><?=l(273)?></label>
    <div class="input">
        <input type="checkbox" name="billable" value="1" data-bind="<?=$data-bind?>">
    </div>
</div>

另外我还提到,如果您希望此代码可移植并由其他人使用,则建议使用<?之类的短标记,因为可以关闭对这些代码的支持。而是格式如下:

<?php $data-bind = $perms['user_profiles|edit_billable'] ? "checked: userProfile().billable, enable:isBillable();" : "checked: userProfile().billable, disable:isBillable();" ?> 
<div class="field">
    <label><?php echo l(273)?></label>
    <div class="input">
        <input type="checkbox" name="billable" value="1" data-bind="<?php echo $data-bind?>">
    </div>
</div>

虽然更详细,但可由更多人执行。

答案 1 :(得分:0)

您是否尝试过短语法?

<?php if ($perms['user_profiles|edit_billable']): ?>
      <div class="field">
        <label><?=l(273)?></label>
        <div class="input">
               <input type="checkbox" name="billable" value="1" data-bind="checked: userProfile().billable, disable:isBillable();">
        </div>
      </div>
    </div
<?php else: ?>
      <div class="field">
        <label><?=l(273)?></label>
        <div class="input">
     <!-- This is where the else would go -->     
                <input type="checkbox" name="billable" value="1" data-bind="checked: userProfile().billable, enable:isBillable();">
        </div>
      </div>
    </div>
<?php endif; ?>

可能,您需要在php.ini中启用这些语法

short_open_tag=On

答案 2 :(得分:0)

你的if和else是否正常,但是

<?=l(273)?>

不工作。 如果“l”是自定义功能,请使用

<? l(273);?>
相反,它会起作用。

答案 3 :(得分:0)

试试这个,可能会解决问题。

<?php

// true
if ($perms['user_profiles|edit_billable']===TRUE) {  

?>
<div class="field">
    <label><?php=l(273)?></label>
    <div class="input">
           <input type="checkbox" name="billable" value="1" data-bind="checked: userProfile().billable, disable:isBillable();">

    </div>
  </div>
</div>


<?php


}elseif ($perms['user_profiles|edit_billable']===FALSE){
// false
    ?>

<div class="field">
    <label><?php=l(273)?></label>
    <div class="input">
 <!-- This is where the else would go -->     
            <input type="checkbox" name="billable" value="1" data-bind="checked: userProfile().billable, enable:isBillable();">

    </div>
  </div>
</div>



<?php 
 }
 ?>