根据变量的值包含一个 php 页面
include a php page based upon the value of a variable
我创建了一个函数,该函数接受当前页面 ID,并根据该结果显示两个 .php 文件或仅显示一个 .php 文件。
以下是我写的。我是否以正确的方式处理了这个问题?
<?php
function get_search_or_nav($page_id) {
if(isset($page_id)) {
$id = $page_id;
$pages = array('home', 'thank-you');
foreach($pages as $page){
if($page==$id)
$match = true;
}
if($match) {
include("dir/file_1.php");
include("dir/file_2.php");
}
elseif (!$match) {
include("dir/file_1.php");
}
}
}
?>
$pages
变量保存 $page_id
数组,即 $pages = array('home', 'thank-you');
每个 .php
文件都有一个 $page_id
即 index.php
有 $page_id = "home";
该数组是匹配 $page_id
的列表:
$pages = array('home', 'thank-you');
调用将是:
get_search_or_nav($page_id);
如有任何帮助或建议,我们将不胜感激。
我只会这样做:
$id = $page_id;
$pages = array('home', 'thank-you');
$match = in_array($id, $pages);
不需要迭代
不需要 foreach
循环。 PHP 具有内置函数来处理您想要的 (in_array()
):我会将您的函数更改为如下内容:
function get_search_or_nav($page_id) {
if (isset($page_id)) {
$id = $page_id;
$pages = array('home', 'thank-you');
// make sure file is in allowed array (meaning it exists)
if(in_array(id, $pages)) {
include("dir/file_1.php");
include("dir/file_2.php");
return true;
}
// no match, so include the other file
include("dir/file_1.php");
return false;
}
}
您可以通过以下方式实现您的功能:
function get_search_or_nav($page_id) {
if(isset($page_id)) {
$pages = array('home', 'thank-you');
// You could do this with for loop
// but PHP offers in_array function that checks
// if the given value exists in an array or not
// if found returns true else false
$match = in_array($page_id, $pages);
// you are including this in either case
// so no need to repeat it twice in both conditions
include("dir/file_1.php");
// if match include file 2
if ($match) {
include("dir/file_2.php");
}
}
// you might want to throw Exception or log error here
// or just redirect to some 404 page or whatever is your requirement
}
我创建了一个函数,该函数接受当前页面 ID,并根据该结果显示两个 .php 文件或仅显示一个 .php 文件。
以下是我写的。我是否以正确的方式处理了这个问题?
<?php
function get_search_or_nav($page_id) {
if(isset($page_id)) {
$id = $page_id;
$pages = array('home', 'thank-you');
foreach($pages as $page){
if($page==$id)
$match = true;
}
if($match) {
include("dir/file_1.php");
include("dir/file_2.php");
}
elseif (!$match) {
include("dir/file_1.php");
}
}
}
?>
$pages
变量保存 $page_id
数组,即 $pages = array('home', 'thank-you');
每个 .php
文件都有一个 $page_id
即 index.php
有 $page_id = "home";
该数组是匹配 $page_id
的列表:
$pages = array('home', 'thank-you');
调用将是:
get_search_or_nav($page_id);
如有任何帮助或建议,我们将不胜感激。
我只会这样做:
$id = $page_id;
$pages = array('home', 'thank-you');
$match = in_array($id, $pages);
不需要迭代
不需要 foreach
循环。 PHP 具有内置函数来处理您想要的 (in_array()
):我会将您的函数更改为如下内容:
function get_search_or_nav($page_id) {
if (isset($page_id)) {
$id = $page_id;
$pages = array('home', 'thank-you');
// make sure file is in allowed array (meaning it exists)
if(in_array(id, $pages)) {
include("dir/file_1.php");
include("dir/file_2.php");
return true;
}
// no match, so include the other file
include("dir/file_1.php");
return false;
}
}
您可以通过以下方式实现您的功能:
function get_search_or_nav($page_id) {
if(isset($page_id)) {
$pages = array('home', 'thank-you');
// You could do this with for loop
// but PHP offers in_array function that checks
// if the given value exists in an array or not
// if found returns true else false
$match = in_array($page_id, $pages);
// you are including this in either case
// so no need to repeat it twice in both conditions
include("dir/file_1.php");
// if match include file 2
if ($match) {
include("dir/file_2.php");
}
}
// you might want to throw Exception or log error here
// or just redirect to some 404 page or whatever is your requirement
}