【问题标题】:PHP function return or echo with variablePHP函数返回或回显变量
【发布时间】:2014-01-05 12:19:27
【问题描述】:

所以我正在使用一个在 HTML 中两个不同位置使用的函数,如下所示。

function remaining($expDate,$output){
 $dStart = new DateTime(date('Y-m-d'));
    $dEnd  = new DateTime(date('Y-m-d ',strtotime($expDate)));

    $dDiff = $dStart->diff($dEnd);
     $dDiff->format('%R'); 

  if($output = "return"){
        return $dDiff->days;
    }else{
        echo $dDiff->days;}
}
<div 
  class="progress-bar <?php if(remaining($expDate,"return")==90){echo"progress-bar-success";}else{echo "progress-bar-danger";}?> 
  role="progressbar" 
  aria-valuenow="40" 
  aria-valuemin="0" aria-valuemax="100" 
  style="width: <?php remaining($expDate,"echo") ?>%">

当我返回值style 部分不起作用时,当我回显然后在if() 语句中我得到值:( 所以我尝试添加第二个参数并给出相对输出。 我显然在这里遗漏了一些东西,但无法弄清楚:(你能给我一个关于函数变量输出的提示吗?或者可能是实现这一目标的更好方法:)

【问题讨论】:

    标签: php progress-bar twitter-bootstrap-3 user-defined-functions


    【解决方案1】:

    问题在于 if 语句

    This is an attribution not a comparison
    if( $output = "return" ){ ...
    

    应该是这样的:

    function remaining($expDate,$output){
        $dStart = new DateTime(date('Y-m-d'));
        $dEnd  = new DateTime(date('Y-m-d ',strtotime($expDate)));
        $dDiff = $dStart->diff($dEnd);
        return $dDiff->days;
    }
    

    啊!!顺便说一下上面的代码的工作方式,你不能让它工作,因为你 忘了这样做:&lt;?php echo remaining()... ?&gt;你忘了回声!

    问候。

    【讨论】:

    • 只要纠正 if 语句就可以了。我多么想念它:(非常感谢@Joao
    • @cevizmx 这是一个常见的错误 ;)
    • @cevizmx 检查我的更新,你正在做的“输出”事情很讨厌:D!
    • @cevizmx 顺便说一句,只是一个建议,下次尝试在格式方面更加小心,否则 SO 的人可能会投票给你。
    【解决方案2】:
    if($output = "return")
    

    永远是正确的,纠正它

    if($output == "return")
    

    所以程序比较并返回 TRUE 或 FALSE

    【讨论】:

      【解决方案3】:
      if($output = "return"){
      

      需要

      if($output == "return"){
      

      如果你放了

      if($output = "return"){
      

      然后你有效地将 $output 设置为等于返回(这将始终返回 true!)

      【讨论】:

        【解决方案4】:

        您的 if 语句似乎很糟糕。您使用的 '=' 听起来不像 PHP 中的 'equals' 运算符。因此,只需将条件中的 '=' 替换为 '=='。

        您可能还希望在此处传递一个简单的布尔值 (true / false) 而不是字符串,但这取决于您。

        【讨论】:

          猜你喜欢
          • 2014-01-31
          • 1970-01-01
          • 1970-01-01
          • 2017-08-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-14
          • 1970-01-01
          相关资源
          最近更新 更多