你看到这个破裂吗?任何问题?简单的php if elseif语句

时间:2011-10-20 09:19:09

标签: php if-statement

我是一个完整的PHP新手,所以可能有一种更好的方法可以根据不同的变量输出一个行的类。

这是不好的,如果是为什么呢?

    if ($variable1 > 0 && $variable2 != 2)  {
        echo "<tr class='variable1'>";
        }
        elseif ($variable2==2)
        {
         echo "<tr class='variable2'>";
        }
        else {
              echo "<tr>";
                 }

7 个答案:

答案 0 :(得分:1)

你可以先放if ($variable2==2),然后你就不需要在另一个if语句中否定它。像这样:

if ($variable2==2){
    echo '<tr class="variable1">';
}elseif ($variable1 > 0)  {
    echo '<tr class="variable2">';
}else {
    echo '<tr>';
}

虽然对我来说没问题,但它确实依赖于其余的代码,你可能会稍微更改代码以使其更容易阅读但它看起来很简单所以,如果它有效,我会保持它是怎么回事。

答案 1 :(得分:1)

PHP代码在语法上是正确的,虽然缩进似乎搞砸了。输出的HTML代码无效,因为attributes values必须用双引号括起来。

我还建议稍微重新排序:

if ($variable2 == 2) {
    echo '<tr class="variable2">';
} elseif ($variable1 > 0)  {
    echo '<tr class="variable1">';
} else {
    echo '<tr>';
}

答案 2 :(得分:0)

嗯,你可以从

开始
if ($variable2==2)

如果继续

,这将保护你$ variable2!= 2
elseif ($variable1 > 0)

但一般来说我没有看错。当然这取决于你还想做什么。

答案 3 :(得分:0)

我会这样写:

$class_name = '';
if (2 == $variable2)
{
    $class_name = 'variable2';
}
elseif ($variable1 > 0)
{
    $class_name = 'variable1';
}
echo '<tr class="' , $class_name , '">';

注意在相等测试中我在变量之前使用常量..这是一种习惯,这样如果我错过一个等于它会导致错误,我将被迫纠正它而不是“奇怪的”行为

另一件事是我将初始值赋给$ class_name,这将是默认值

我也使用撇号而不是引号,因为它更快(因为你的方式php会解析变量的字符串)

最后一件事就是我回复多个字符串..这也比连接3个字符串更快(

echo '<tr class="' , $class_name , '">'; 

而不是回声

'<tr class="' . $class_name . '">';

答案 4 :(得分:0)

2条规则供您学习如何编程:

0.1。干:不要重复自己。

如果你的tr标签输入了3次,你可以肯定地说错了。

0.2。将业务逻辑与表示逻辑分开。使用模板输出。首先准备数据,只有在一切准备就绪后才开始输出。

所以,首先你必须定义你的变量

if ($variable2 == 2){
    $class = "variable1";
}elseif ($variable1 > 0)  {
    $class = "variable2";
}else {
    $class = "";
}

接下来,你必须包含一个模板并在其中编写原生HTML,尽可能少的PHP:

<tr class="<?=$class?>">

答案 5 :(得分:0)

嗯,这在很多层面上都是一种非常不幸的方法,但我可以告诉你,即使我开始按照你描述的方式编写代码,只是在12年前。

我还可以告诉你,最终将php与标记混合在同一个文件中会让你陷入困境,比你想象的更快。 与生活中的大多数事情一样,在PHP中开发时,更快地完成任务并在以后休息时担心是一个糟糕的问题。

一些指示:

  • 非常难以在同一文件中混用PHP和HTML或其他标记。在第一次开发时,这样做会更有效,但在以后更改和维护代码时,工作量会减少很多。
  • PHP是一种面向对象的语言。了解如何使用它对您有利。创建自己类的库,以便以后重用。
  • 使用良好的编辑器/ IDE,如NetBeans或Komode编辑器 - 这些都是免费的。
  • PHP信息的最佳资源是在线PHP手册。不仅手册页面很棒,而且用户贡献的代码片段充满了小宝石 - 还有一些明显的n00b错误,但你会学会过滤它。
  • 如果你是一般的编程新手,请帮自己一个忙,并获得一本关于编程的书。 PHP是一种非常宽容的语言,可以让你摆脱许多不良做法。正如我所说,那些人迟早会回来找你。
  • 获得一些经验后,请考虑使用PHP框架,如CodeIgniter,CakePHP或ZendFramework。尝试其中一些并选择适合你的那个。
  • 不要听那些告诉你PHP很糟糕的人。 PHP是我使用过的最强大的编程语言,可能除了C和Prolog之外。 PHP数组是我在任何语言中遇到的最强大的数据结构 - 除了C中的链表; - )
  • 您可以将PHP用于各种编程任务,包括Windows和Linux服务器应用程序以及完整的桌面图形应用程序。事实上,根据我的经验,PHP比我对它进行基准测试的任何动态语言都要快 - python,perl,ruby,tcl都比PHP慢。但是不要相信我的话,自己试试: - )

一些链接:

30+ PHP best practices for beginners

PHP bad programming practices

PHP OOP in full effect

PHP manual

答案 6 :(得分:-1)

echo ( ( $variable1 > 0 ) && ( $variable2 != 2 ) )
    ? "<tr class='variable1'>"
    : ( $variable2 == 2 )
        ? "<tr class='variable2'>"
        : "<tr>";