【问题标题】:$index as a parameter : multiple if statement issue$index 作为参数:多个 if 语句问题
【发布时间】:2016-09-01 19:01:24
【问题描述】:

请看一下这个功能:

function my_func($index_bis) {
    if (!is_int($index_bis) || $index_bis > 5 || $index_bis < 0) return;
    elseif ($index_bis = 5) : echo 'This';
    elseif ($index_bis = 1) : echo 'That';
    endif;
}

这有什么问题?我其实不明白哪里错了……

感谢您的帮助。

【问题讨论】:

    标签: function if-statement indexing parameters echo


    【解决方案1】:

    这是什么? php? 你想做什么?

    这个怎么样:

    function my_func($index_bis) {
        if (!is_int($index_bis) || $index_bis > 5 || $index_bis < 0){
            $str = $index_bis;
        }
        elseif ($index_bis == 5) {
            $str='This';
        }
        elseif ($index_bis == 1) {
            $str='That';
        }
    return $str;
    }
    

    在“return”之后放任何东西是很不典型的;我认为“返回”有效地停止了该功能。

    编辑:FOREACH 方法。

    如果您从两个相关变量构建 html,FOREACH 是处理它们的好方法,因为您可以为数组中的每个项目设置数据“键”和“值”。

    默认情况下,PHP 中的“键”被分配一个数字,从 0 开始,通过递增的整数进行。您可以选择命名这些键,而不是使用 PHP 分配的默认值。

    所以考虑这样设置你的数组:

    $newArray = (
        'tab name' => 'label name',
        'apples'   => 'red',
        'oranges'  => 'orange',
        );
    

    其中“=>”左侧的项始终是键,右侧的项始终是值。

    然后,您可以使用以下行在代码中向该数组添加更多元素:

    $newArray['bananas'] = 'yellow';
    

    注意键(标签)名称,用方括号(因为它是键名)和单引号(因为它是一个字符串)。

    现在您有了一个数组,您可以使用 FOREACH 循环“遍历”它并回显 html。代码如下:

     foreach($newArray as $key => $value) {
        echo "<tab>$key</tab> : ";
        echo "<label>$value</label>
        echo "<br /";
    }
    

    这将输出下面的html:

     <tab>tab name</tab> : <label>label name</label><br />
     <tab>apples</tab> : <label>red</label><br />
     <tab>oranges</tab> : <label>orange</label><br />
     <tab>bananas</tab> : <label>yellow</label><br />
    

    非常有用。玩得开心!

    注意:可能有更好的方法可以做到这一点,但我将这个方法作为一个简单的解决方案分享。而且,因为你不应该在不了解 FOREACH 和简单数组的情况下走得更远。

    注意:如果要合并两个以上的变量,则需要更复杂的数据结构。在 PHP 中,这些被称为“多维数组”。读一读。除此之外,还有更多处理数据的方法(即“对象”)。

    【讨论】:

    • 是的,它是 PHP,很抱歉在我的帖子中忘记了 PHP 标记。此代码只是一个示例。我希望在我的实际功能中做的是添加适当数量的选项卡系统的列。然后,如果 $index_bis == 5,则显示 5 个选项卡。如果 $index_bis ==1,则只显示一个选项卡。对于每个值,我都会关联 HTML。代码可能是多余的,但
    • 哦,返回是为了停止该功能,这就是我添加它的原因。如果 $index_bis 不是整数、>5 或
    • 示例代码很好——事实上,完美。 Alexandre,从代码设计的角度来看,创建选项卡名称数组,然后使用 FOREACH 语句遍历数组并输出选项卡会是更好的方法吗?对于您在此处的建议,IF 语句似乎太复杂了。这将避免对函数的冗余使用。我需要了解您用于创建标签以更清晰地评论的数据来源。
    • 我已经成功实现了我的愿望。但是,正如您所料,这有点多余。我买了一本 PHP 书籍,更新为 PHP 7(所以,是最新的),因为这不是我第一次需要这个 foreach 语句。我实际上无法正确理解它。目前,我已经通过 IF 语句实现了我想要的,并且每次都显示部分代码: if ($alex_index == 2) {echo $alex_str_1,$alex_str_a;} --- ... --- if ($alex_index == 5) {echo $alex_str_1,$alex_str_2,$alex_str_3,$alex_str_4,$alex_str_a,$alex_str_b,$alex_str_c,$alex_str_d;}
    • 这听起来很奇怪,但我的标签是由输入和标签组成的,这意味着我必须将每个
    猜你喜欢
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 2015-09-16
    • 2021-05-15
    相关资源
    最近更新 更多