0
    if($i==6) {
    $result .= '<a style="display:none" class="fancybox" data-fancybox-group="gallery" href="'.$value['images']['standard_resolution']['url'].'"></a> '.$caption.PHP_EOL;;}
    else {
    $result .= "\t".'<a class="fancybox" data-fancybox-group="gallery" href="'.$value['images']['standard_resolution']['url'].'"><img id="thumb'.++$i.'" src="'.$value['images']['low_resolution']['url'].'" alt="'.$value['caption']['text'].'" width="'.$width.'" height="'.$height.'" /></a> '.$caption.PHP_EOL;}

这意味着:对于所有大于 6 的项目$resultdisplay:none和 blahblah,对于所有其他项目,$result 是带有标题的图像。

我想补充的是:如果计数器等于 4,则打印“else” $result,唯一的更改src="'.$value['images']['low_resolution']['url'].'"src="'.$value['images']['thumb_resolution']['url'].'"

我认为这可行,但我正在寻找一种更酷的单线方式:D

    if($i==6) {
    $result .= '<a style="display:none" class="fancybox" data-fancybox-group="gallery" href="'.$value['images']['standard_resolution']['url'].'"></a> '.$caption.PHP_EOL;;}
    elseif($i===4) {
    $result .= "\t".'<a class="fancybox" data-fancybox-group="gallery" href="'.$value['images']['standard_resolution']['url'].'"><img id="thumb'.++$i.'" src="'.$value['images']['thumb_resolution']['url'].'" alt="'.$value['caption']['text'].'" width="'.$width.'" height="'.$height.'" /></a> '.$caption.PHP_EOL;}
    else {
    $result .= "\t".'<a class="fancybox" data-fancybox-group="gallery" href="'.$value['images']['standard_resolution']['url'].'"><img id="thumb'.++$i.'" src="'.$value['images']['low_resolution']['url'].'" alt="'.$value['caption']['text'].'" width="'.$width.'" height="'.$height.'" /></a> '.$caption.PHP_EOL;}
4

3 回答 3

1

查找条件运算符或三元运算符。它是这样使用的:

$check = true;
$var = $check ? 5 : 3;

条件运算符检查表达式之前的?值,:如果表达式为真,则输出 ':' 之前的值,如果为假,则输出 ':' 之后的值。所以上面的行设置$var为 5 因为$check是真的。你也可以这样做:

$check = 2354;
$var = ($check < 40) ? 5 : 3;

那会给你相反的结果,$var会被设置为 3,因为$check不满足条件$check < 40。把它想象成一个函数,它根据给定表达式的真值输出两个可能值之一。您可以将其直接嵌入到result .=as:

($i === 4) ? $value['images']['low_resolution']['url'] : $value['images']['thumb_resolution']['url'];

有关条件运算符的更多信息,您可以在此处查看有关它的 PHP 文档页面。请注意,关于条件运算符的部分位于页面下方。

于 2013-06-17T18:26:02.830 回答
0

您可能会想到的是三元运算符,但它并不“真正”支持elseif并且可能难以阅读。

为什么不试试换一个更酷的开关,但它不是一个衬垫。:)

 switch ($i){
   case "6": 
       $result .= '<a style="display:none" class="fancybox" data-fancybox-group="gallery" href="'.$value['images']['standard_resolution']['url'].'"></a> '.$caption.PHP_EOL;
       break;
   case "4": 
       $result .= "\t".'<a class="fancybox" data-fancybox-group="gallery" href="'.$value['images']['standard_resolution']['url'].'"><img id="thumb'.++$i.'" src="'.$value['images']['thumb_resolution']['url'].'" alt="'.$value['caption']['text'].'" width="'.$width.'" height="'.$height.'" /></a> '.$caption.PHP_EOL;
       break;
   default:  
       $result .= "\t".'<a class="fancybox" data-fancybox-group="gallery" href="'.$value['images']['standard_resolution']['url'].'"><img id="thumb'.++$i.'" src="'.$value['images']['low_resolution']['url'].'" alt="'.$value['caption']['text'].'" width="'.$width.'" height="'.$height.'" /></a> '.$caption.PHP_EOL;
       break;
 }
于 2013-06-17T18:27:50.353 回答
0

使用php的三元运算符。简单的语法是

Condition ? (if-equivalent-statement) : (else-equivalent-statement)

但是,当在另一个语句中使用此条件时,应将其括在括号中,例如:

(Condition ? (if-equivalent-statement) : (else-equivalent-statement))

所以,代码应该是这样的:

if($i==6) {
    $result .= '<a style="display:none" class="fancybox" data-fancybox-group="gallery" href="'.$value['images']['standard_resolution']['url'].'"></a> '.$caption.PHP_EOL;;}
else {
//I've broken down the line to make it easier to read

    $result .= "\t".'<a class="fancybox" data-fancybox-group="gallery" href="'.$value['images']['standard_resolution']['url'].'"><img id="thumb'.++$i.'" src="'.

            (($i==4) ? $value['images']['thumb_resolution']['url'] : $value['images']['low_resolution']['url'])

            .'" alt="'.$value['caption']['text'].'" width="'.$width.'" height="'.$height.'" /></a> '.$caption.PHP_EOL;

}
于 2013-06-17T18:26:44.940 回答