如何在4 var

时间:2018-08-16 21:56:54

标签: php function variables


我的功能不起作用。

    $displayon = "display:none !important";
    $displayoff = "padding:0";

    $displayres = "responsive";
    $displayres1 = "responsive1";

   function displays($check)
   {
    if ($display1 OR $display2 OR $display3 OR $display4 == $displayon){
       echo $displayres1;
       return true;
    }
    else  {
        echo $displayres;
    }

   }



<div class="<?php if (displays($check) == true){echo $check;};?>"style="<?php echo $display1;?>">
<div class="<?php if (displays($check) == true){echo $check;};?>"style="<?php echo $display2;?>">
<div class="<?php if (displays($check) == true){echo $check;};?>"style="<?php echo $display3;?>">
<div class="<?php if (displays($check) == true){echo $check;};?>"style="<?php echo $display4;?>">


但是没有用。
我希望“ $ display1或$ display2或...”等于“ $ displayon” ,请使用 response1 。否则,请使用响应式。
我有4列的图片库。
在模块中,您可以禁用每列。
如果禁用一列,我希望响应式变为3列。
如果禁用两列,则响应式变为2列。
每个显示(display1,2,3,4)表示一列。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,则该功能需要执行以下操作:

function displays($check) {
    if ($check == "display:none !important") {
        return 'responsive1';
    } else {
        return 'responsive';
    }
}

并像这样使用:

<div class="<?php echo displays($display1); ?>"style="<?php echo $display1;?>">
<div class="<?php echo displays($display2); ?>"style="<?php echo $display2;?>">
<div class="<?php echo displays($display3); ?>"style="<?php echo $display3;?>">
<div class="<?php echo displays($display4); ?>"style="<?php echo $display4;?>">

您将样式字符串作为参数传递给displays函数,并根据是否与您要查找的特定字符串匹配来返回一个或另一个类。


一些重要的事情要注意:

  • 如果在函数外部定义变量,则不能在该函数中使用该变量。 (请参见variable scope
  • 您无法将多个事物与这样的事物进行比较

    if ($display1 OR $display2 OR $display3 OR $display4 == $displayon){
    

    相反,您需要一次像

    那样做一次
    if ($display1 == $displayon || $display2 == $displayon ... etc. 
    

    或将它们放入数组并使用in_array。但是我不认为这就是你要去的地方。

  • 当您定义诸如function displays($check)之类的函数时,$check是一个参数,并且在执行该函数时,它将采用调用该函数时所放置内容的值。例如,如果我们说displays('hi');,则$check将具有字符串'hi'。而且,如果我们说$someVar = 42;并调用displays($someVar);,那么$check将具有值42