Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php三元语句_Php_Conditional Operator - Fatal编程技术网

Php三元语句

Php三元语句,php,conditional-operator,Php,Conditional Operator,您好,我最近查看了一个购物车paginator类,试图理解它们的代码,以便在遇到以下代码行时可以构建自己的paginator。它类似于一个三元语句,但其书写方式是我从未见过的。我会用谷歌搜索它,但我不知道用谷歌搜索什么。有人能告诉我这是如何工作的,它叫什么,所以我可以做一个搜索,了解更多 return ($output ? '<div class="' . $this->style_links . '">' . $output . '</div>' : ''

您好,我最近查看了一个购物车paginator类,试图理解它们的代码,以便在遇到以下代码行时可以构建自己的paginator。它类似于一个三元语句,但其书写方式是我从未见过的。我会用谷歌搜索它,但我不知道用谷歌搜索什么。有人能告诉我这是如何工作的,它叫什么,所以我可以做一个搜索,了解更多

    return ($output ? '<div class="' . $this->style_links . '">' . $output . '</div>' : '') 
. '<div class="' . $this->style_results . '">' . sprintf($this->text, ($total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($total - $limit)) ? $total : ((($page - 1) * $limit) + $limit), $total, $num_pages) . '</div>';
return($output?'.$output'.'':'')
. '' . sprintf($this->text,($total)($page-1)*$limit)+1:0,($page-1)*$limit)>($total-$limit))?$total:(($page-1)*$limit)+$limit),$total,$num_pages.“”;
只要让我知道这是否是足够的代码继续下去 谢谢 安德鲁

更多

 http://www.johnhok.com/2008/02/23/php-tip-tertiary-operator/
就你而言:

$output ? '<div class="' . $this->style_links . '">' . $output . '</div>' : ''
$output?“”$输出。“”:“”
如果$output变量不为空,则以下为返回值,否则返回空的“”字符串

<div class="' . $this->style_links . '">' . $output . '</div>'
”$输出
代码中使用的其他第三级运算符也是如此

更多

 http://www.johnhok.com/2008/02/23/php-tip-tertiary-operator/
就你而言:

$output ? '<div class="' . $this->style_links . '">' . $output . '</div>' : ''
$output?“”$输出。“”:“”
如果$output变量不为空,则以下为返回值,否则返回空的“”字符串

<div class="' . $this->style_links . '">' . $output . '</div>'
”$输出

代码中使用的其他第三级运算符也是如此。

Nice。。。它只是一个常规的条件运算符(其中有3个,还有一些连接)

如果重新格式化,它会变得更清晰:

$output = $output ? '<div class="' . $this->style_links . '">' . $output . '</div>' : '';

$min = $total ? (($page - 1) * $limit) + 1 : 0;
$max = (($page - 1) * $limit) > ($total - $limit) ? $total : ((($page - 1) * $limit) + $limit);

$output .= '<div class="' . $this->style_results . '">'
    . sprintf($this->text, $min, $max, $total, $num_pages)
    . '</div>';

return $output;
$output=$output?“”$输出。“”:“”;
$min=$total?(($page-1)*$limit)+1:0;
$max=($page-1)*$limit)>($total-limit)$总计:(($page-1)*$limit)+$limit);
$output.=''
. sprintf($this->text,$min,$max,$total,$num\u pages)
. '';
返回$output;

不错。。。它只是一个常规的条件运算符(其中有3个,还有一些连接)

如果重新格式化,它会变得更清晰:

$output = $output ? '<div class="' . $this->style_links . '">' . $output . '</div>' : '';

$min = $total ? (($page - 1) * $limit) + 1 : 0;
$max = (($page - 1) * $limit) > ($total - $limit) ? $total : ((($page - 1) * $limit) + $limit);

$output .= '<div class="' . $this->style_results . '">'
    . sprintf($this->text, $min, $max, $total, $num_pages)
    . '</div>';

return $output;
$output=$output?“”$输出。“”:“”;
$min=$total?(($page-1)*$limit)+1:0;
$max=($page-1)*$limit)>($total-limit)$总计:(($page-1)*$limit)+$limit);
$output.=''
. sprintf($this->text,$min,$max,$total,$num\u pages)
. '';
返回$output;

<代码>被称为条件运算符,我认为这是滥用它。条件运算符有助于在不影响代码可读性的情况下将short if else构造缩减为一个语句

if(a == b)
    c = d;
else
    c = e;
//can be written as:
c = a == b ? d : e;
给定的代码可以写成:

return ($output ? 
            '<div class="' . $this->style_links . '">' . $output . '</div>'
         : '') . 
    '<div class="' . $this->style_results . '">' . 
    sprintf($this->text, 
        ($total) ? 
            (($page - 1) * $limit) + 1 
          : 0, 
        ((($page - 1) * $limit) > ($total - $limit)) ? 
            $total 
          : ((($page - 1) * $limit) + $limit), 
        $total, $num_pages) . '</div>';
返回($output)?
''.$输出''
: '') . 
'' . 
sprintf($this->text,
(总共美元)?
(($page-1)*$limit)+1
: 0, 
(($page-1)*$limit)>($total-$limit))?
总计$
:((($page-1)*$limit)+$limit),
$total,$num_页)。“”;
相当于:

if($output)
    $str = '<div class="' . $this->style_links . '">' . $output . '</div>';
else
    $str = '';

$str .= '<div class="' . $this->style_results . '">';

if($total)
    $first = (($page - 1) * $limit) + 1;
else
    $first = 0;

if((($page - 1) * $limit) > ($total - $limit))
    $second = $total;
else
    $second = ((($page - 1) * $limit) + $limit);

$str .= sprintf($this->text, $first, $second, $total, $num_pages);
$str .= '</div>';
if($output)
$str=''$输出";;
其他的
$str='';
$str.='';
如果有的话($总数)
$first=(($page-1)*$limit)+1;
其他的
$first=0;
如果((($page-1)*$limit)>($total-$limit))
$second=$total;
其他的
$second=((($page-1)*$limit)+$limit);
$str.=sprintf($this->text,$first,$second,$total,$num_pages);
$str.='';

<代码>被称为条件运算符,我认为这是滥用它。条件运算符有助于在不影响代码可读性的情况下将short if else构造缩减为一个语句

if(a == b)
    c = d;
else
    c = e;
//can be written as:
c = a == b ? d : e;
给定的代码可以写成:

return ($output ? 
            '<div class="' . $this->style_links . '">' . $output . '</div>'
         : '') . 
    '<div class="' . $this->style_results . '">' . 
    sprintf($this->text, 
        ($total) ? 
            (($page - 1) * $limit) + 1 
          : 0, 
        ((($page - 1) * $limit) > ($total - $limit)) ? 
            $total 
          : ((($page - 1) * $limit) + $limit), 
        $total, $num_pages) . '</div>';
返回($output)?
''.$输出''
: '') . 
'' . 
sprintf($this->text,
(总共美元)?
(($page-1)*$limit)+1
: 0, 
(($page-1)*$limit)>($total-$limit))?
总计$
:((($page-1)*$limit)+$limit),
$total,$num_页)。“”;
相当于:

if($output)
    $str = '<div class="' . $this->style_links . '">' . $output . '</div>';
else
    $str = '';

$str .= '<div class="' . $this->style_results . '">';

if($total)
    $first = (($page - 1) * $limit) + 1;
else
    $first = 0;

if((($page - 1) * $limit) > ($total - $limit))
    $second = $total;
else
    $second = ((($page - 1) * $limit) + $limit);

$str .= sprintf($this->text, $first, $second, $total, $num_pages);
$str .= '</div>';
if($output)
$str=''$输出";;
其他的
$str='';
$str.='';
如果有的话($总数)
$first=(($page-1)*$limit)+1;
其他的
$first=0;
如果((($page-1)*$limit)>($total-$limit))
$second=$total;
其他的
$second=((($page-1)*$limit)+$limit);
$str.=sprintf($this->text,$first,$second,$total,$num_pages);
$str.='';

我想知道是谁来维护这些过度繁忙的条件运算符语句。我想知道是谁来维护这些过度繁忙的条件运算符语句。好吧,我不明白第一行。问号是什么意思?我以为三元运算符是这样的$string=(条件)?如果为真则执行:如果为假则执行;情况如何?或者输出是条件,它怎么可能是条件?我以前没有见过它们以这种方式使用,它是如何工作的?一个简单的变量也是一个表达式。如果变量的值“等于”true,则返回true,因此它不应该是
0
false
array()
或空字符串…这就像使用
if()
if($output)
if($output==true)
-以同样的方式
$output?x:y
$output==true相同吗?好的,我不懂第一行。问号是什么意思?我以为三元运算符是这样的$string=(条件)?如果为真则执行:如果为假则执行;情况如何?或者输出是条件,它怎么可能是条件?我以前没有见过它们以这种方式使用,它是如何工作的?一个简单的变量也是一个表达式。如果变量的值“等于”true,则返回true,因此它不应该是
0
false
array()
或空字符串…这就像使用
if()
if($output)
if($output==true)
-以同样的方式
$output?x:y
$output==true相同吗?x:y
好的,如果你把一个变量放进去,你说这个变量是空的。我没意识到你是个疯子