使用数组简化在If语句中检查多个PHP页面

时间:2013-04-25 04:36:51

标签: php arrays if-statement

问题:

优化PHP代码,以便在到达多个页面之一时打印代码。

PHP-代码:

if (substr(strrchr($_SERVER['PHP_SELF'], '/'), 1) == "part-c.php" || substr(strrchr($_SERVER['PHP_SELF'], '/'), 1) == "part-g.php" || substr(strrchr($_SERVER['PHP_SELF'], '/'), 1) == "part-j.php" || substr(strrchr($_SERVER['PHP_SELF'], '/'), 1) == "part-n.php" || substr(strrchr($_SERVER['PHP_SELF'], '/'), 1) == "part-q.php")
{
    echo 'Hello';
}

建议:

我在想是否将所有页面放在一个数组中并检查您所在的页面是否存在于该数组中是一个好主意。其他建议如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

是的,你是对的,你可以通过将所有页面放在数组和数组中来减少代码。使用in_array检查。

$checkString = substr(strrchr($_SERVER['PHP_SELF'], '/'), 1);
$pages = array("part-c.php","part-g.php","part-j.php","part-n.php","part-q.php");

if(in_array($checkString,$pages)){
   echo 'Hello';
}

答案 1 :(得分:0)

您也可以将文件放在txt文件中,该文件只能由服务器将其设置为CHMOD 0664读取,然后列出文件如下:

<强> vPages.txt

part-c.php
part-g.php
part-j.php
part-n.php
part-q.php

然后运行一些像Rikesh建议的代码:

$page = substr( strrchr( $_SERVER['PHP_SELF'], '/' ), 1 );
$vPages = file( './vPages.txt' );

if ( in_array( $page, $vPages ) ) {
    // Seems legit...

}

您将能够轻松编辑文件以包含更多有效页面。