Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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-Elseif三元运算符_Php - Fatal编程技术网

PHP-Elseif三元运算符

PHP-Elseif三元运算符,php,Php,我正在尝试将以下代码转换为三元运算符,但它不起作用,我不确定原因。我想我的问题是我不知道如何用三元格式表达elseif操作。根据我的理解和理解,elseif的执行方式与if操作相同,使用格式:(条件)?'结果“ if ($i == 0) { $top = '<div class="active item">'; } elseif ($i % 5 == 0) { $top = '<div class="item">'; } else { $top =

我正在尝试将以下代码转换为三元运算符,但它不起作用,我不确定原因。我想我的问题是我不知道如何用三元格式表达
elseif
操作。根据我的理解和理解,
elseif
的执行方式与
if
操作相同,使用格式
:(条件)?'结果“

if ($i == 0) {
    $top = '<div class="active item">';
} elseif ($i % 5 == 0) {
    $top = '<div class="item">';
} else {
    $top = '';
}

$top = ($i == 0) ? '<div class="active item">' : ($i % 5 == 0) ? '<div class="item">' : '';
if($i==0){
$top='';
}elseif($i%5==0){
$top='';
}否则{
$top='';
}
$top=($i==0)?“”:($i%5==0)?“”:“”;
$top=($i==0)?“”:(($i%5==0)?“”:“”);

如果。。。否则如果。。。否则…
操作;但是,您可以使用以下技术来模拟该行为

var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');

我个人不喜欢这个,因为我觉得它更具可读性或优雅。我通常更喜欢
开关
语句

switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}

分享一些观点可能为时已晚,但是:)

  • 使用if-else if-else进行有限数量的评估。就我个人而言,当比较次数少于5次时,我更喜欢使用if-else if-else
  • 在评估次数较多的情况下使用开关。就我个人而言,我更喜欢5个以上的开关箱
  • 如果正在考虑单个比较(或循环时的单个比较),或者在开关结构的“case”子句中需要if-else比较,则使用三值
  • 在非常大的数据集上进行循环时,使用三值比较速度更快

  • 最后,开发人员决定了代码可读性和性能之间的平衡,进而决定了在任何特定情况下,三值与if-else,if-else与switch情况下可以使用什么

    为什么你想把你的SourceCodeUnreadable设置为Keyour?我不想,但我想知道如何处理ifelse
    。正如@VolkerK所说,嵌套三元运算符根本不是一个好主意。你应该避免。是的,我同意。我只是想知道我自己的知识。至少,现在当我看到那一行乱七八糟的东西时,我可以解密了:)
    switch (variable) {
        case 1 : name = 'foo'; break;
        case 2 : name = 'bar'; break;
        default : name = 'bas'; break;
    }