代码需要一些解释

时间:2012-09-02 21:08:33

标签: php

我有这段代码,想知道它在做什么,或者是否有更好的方法。

if (eregi("1$|3$|5$|7$|9$", $o))
{
     $tablecolor='bgcolor="#cccccc"';
     $bgcolor='bgcolor="#bcbcbc"';
} 
else
{
     $tablecolor='bgcolor="#bcbcbc"';   
     $bgcolor='bgcolor="#cccccc"';
}

我对"1$|3$|5$|7$|9$", $o部分

感到困惑

3 个答案:

答案 0 :(得分:3)

首先,eregi()已弃用,不应再使用了。

$o中搜索是否以13579结尾,假设$ o是ID,可以是整数或某些字符串,如div1div3,如果匹配,则为您的html设置不同的颜色。

答案 1 :(得分:2)

这是一个正则表达式模式,这里有重要的部分:

  1. |表示"或",因此您可以将其细分为1$3$或...
  2. $表示"如果该行的结尾在这里"。这意味着"如果该行的结尾是1或......"
  3. 这意味着表达式正在查找以奇数整数结尾的任何行。

    它本质上是一种将不同样式应用于奇数行和偶数行的算法。如果你可以自己编写HTML(即奇数和偶数的css类),那么有更清晰的方法可以做到这一点,但有时候你必须使用你得到的东西: - )

答案 2 :(得分:2)

eregi是一个弃用的php函数,它对字符串运行不区分大小写的正则表达式搜索(在本例中为$ o)。

美元符号检查字符串的结尾,所以你的函数做的是检查字符串是否以1,3,5,7或9结尾并相应地设置tablecolor。