【问题标题】:Simplify checking multiple PHP-pages in If-statement using array使用数组简化在 If 语句中检查多个 PHP 页面
【发布时间】:2013-04-18 20:37:15
【问题描述】:

问题:

优化 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';
}

建议:

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

【问题讨论】:

    标签: php arrays if-statement


    【解决方案1】:

    你也可以把你的文件放在一个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...
    
    }
    

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

    【讨论】:

      【解决方案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';
      }
      

      【讨论】:

        猜你喜欢
        • 2015-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-12
        • 1970-01-01
        • 1970-01-01
        • 2020-03-15
        • 2016-08-08
        相关资源
        最近更新 更多