php include传参数,解决PHP的include带参数的有关问题-程序员宅基地

技术标签: php include传参数  

php的include可以载入一个外部php文件,其参数是一个文件名,既然是文件名,就不能带参数了。

php中,如果include载入的文件一定要带参数,就只有一种办法,即这个参数是一个全路径的URL地址。

例如:

include "http://localhost/aaa.php?id=1"; //正确

include "aaa.php?id=1"; //错误

其实include本义就只是用来载入一个外部文件到当前文件中来的,并不解释其中的代码。因此带参数看上去似乎没有意义。

比如以下代码(1.php):

$a="123";

include "aaa.php";

想要用aaa.php接收变量$a的值,只需要在aaa.php中直接调用即可,比如aaa.php的代码如下写:

echo $a;

这样执行1.php,即会输出$a的值:123

然而,有问题就肯定是有需求,我们既然要求include带参数,就肯定不仅仅是想在被载入的文件中使用载入者文件中的变量这么简单。

现在的需求是:

希望根据不同的参数,include同一个文件中的不同代码段。

基于上述要求,我的解决方法是:

把被载入的文件(假设为aaa.php)中的代码写成function,例如:

function abc($x)

{

$returnValue;

switch($x)

{

case 1:

$returnValue="苹果";break;

case 2:

$returnValue="香蕉";break;

case 3:

$returnValue="杨桃";break;

}

}

然后在主文件(假设为1.php)中这样写:

include "aaa.php";

echo abc(1); //输出:苹果

echo abc(2); //输出:香蕉

echo abc(3); //输出:杨桃

其实照上面这种方法,说到底,与前面说的直接使用主文件中的变量,并没有什么大的区别,但是这样做的好处是,不管你主文件中的变量如何变化,aaa.php中的这个function都不需要改动,并且也可以在别的文件中继续被include来使用。

这样一来,直接使用主文件中的变量 与 做成函数放在主文件中调用,两者之间的区别,已经显而易见了!

原创:千雪网络http://www.ayinsky.com

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42398843/article/details/115165043

智能推荐

分包组包 北斗通信_一种基于北斗的低功耗双向非实时通信方法-程序员宅基地

文章浏览阅读474次。一种基于北斗的低功耗双向非实时通信方法【技术领域】[0001]本发明涉及一种基于北斗的低功耗双向非实时通信方法,属于北斗系统通信技术领域。【背景技术】[0002]北斗卫星系统具备的短报文通信功能在水文、气象、海洋、林业领域的遥测系统已经广泛应用。但鉴于目前北斗通讯终端的功耗较大,发信频度受限的问题,这些遥测系统在应用北斗卫星作为数据传输载体时,一般只实现了野外遥测站向数据采集中心站的单向传输功能,..._北斗双向通信

windows域名映射_windows域名映射文件-程序员宅基地

文章浏览阅读981次,点赞2次,收藏2次。windows域名映射_windows域名映射文件

C++程序打包_c++打包-程序员宅基地

文章浏览阅读1.9k次。首先我用的vs2017对现有的项目进行打包处理,当然首先的有打包的工具就是下图的这个vs小工具,找不到的话可以在工具中打开扩展与更新,在里面查找相应的工具名之后就是在项目上新建一个setup项目,前提是你已经安装了上面的那个小工具,之后就是对项目进行添加要输出的项目,设为主输出,然后再第二个文件上进行存放该项目的快捷方式,这个是在桌面的上的,而第三个文件夹是在开始菜单栏里添加的在其中加入所需要的依赖以及项目再进行生成就会出现项目的安装的exe文件在你生成的项目下..._c++打包

输入打开文件-程序员宅基地

文章浏览阅读86次。import fnmatch, osimport reyy = input('')def edd(user_name): def allFiles(root, patterns = '*', single_level = False, yield_folders = False): patterns = patterns.split(';') ..._输打开

Eplan教学视频合集-百度网盘-收集于网络_eplan教程 百度网盘-程序员宅基地

文章浏览阅读9.4k次,点赞5次,收藏18次。Eplan教学视频合集-百度网盘-收集于网络https://yun.baidu.com/s/1djYbk#list/path=%2Fhttps://pan.baidu.com/s/14DHLr31mLq2N8qbxd7vcbw //code:cva8https://yun.baidu.com/s/1qYfdJLM#list/path=%2Fhttps://yun.baidu.co..._eplan教程 百度网盘

keep-alive vue不起作用的原因_vue3+vite的keep-alive浏览器返回不生效-程序员宅基地

文章浏览阅读2w次。keep-alive 从列表页进入到详情页,再回到列表页,然后页面又重新请求,而不是直接读缓存里面的(ps:之前keep-alive用在项目中是可以起作用的,但是不知道为什么这两天就出现了这样的问题。就连activated,deactivated这两个钩子函数也是没有触发到) 具体代码如下 我尝试在项目中新建一个很简单的页面,也是没有效果。一开始以为是vue的版本过低导致的,看了一下v..._vue3+vite的keep-alive浏览器返回不生效

随便推点

elasticsearch-setup-passwords interactive_bash: elasticsearch-setup-passwords: command not f-程序员宅基地

文章浏览阅读2.6k次。elasticsearch-setup-passwords interactive[root@node-zwf ~]# su elasticsearch[elasticsearch@node-zwf root]$ cd /home/elasticsearch/elasticsearch-7.8.0/[elasticsearch@node-zwf elasticsearch-7.8.0]$ elasticsearch-setup-passwords interactiveba..._bash: elasticsearch-setup-passwords: command not found

学校公共计算机保用规定,湖南中医药大学涉密计算机和涉密移动存储介质保密管理规定...-程序员宅基地

文章浏览阅读922次。第一条为了进一步加强学校涉密计算机和涉密移动存储介质(移动硬盘、U盘、软盘、光盘、存储卡等)的安全保密工作,维护国家安全和利益,维护学校稳定和发展,结合我校工作实际,特制定本规定。第二条学校保密委员会负责全校涉密计算机、移动存储介质保密管理的指导、协调和监督工作。保密技术防范和管理工作由学校网络中心负责。第三条涉密计算机的日常管理制度(一)涉密计算机不得直接或间接接入国际互联网、校园网和其他公共信..._大学 涉密计算机安全保密策略

Vue.js复习_下列代码中,应用v-for指令遍历数组items-程序员宅基地

文章浏览阅读380次。Vue 实例有⼀个完整的⽣命周期,也就是从开始创建、初始化数据、编译模版、挂载Dom -> 渲染、更新 -> 渲染、卸载等⼀系列过程,称这是Vue的⽣命周期。_下列代码中,应用v-for指令遍历数组items

删除安装Google Chrome浏览器时捆绑安装的Google 文档、表格、幻灯片、Gmail、Google 云端硬盘、YouTube网址链接(Mac)_chrome自带的表格怎么删-程序员宅基地

文章浏览阅读5.2k次,点赞3次,收藏2次。Mac mini操作系统,安装完 Google Chrome 浏览器以后,单击 启动台 桌面左下角的“显示应用程序”,我们发现捆绑安装了。进入目录 /Users/用户名/Applications/Chrome 应用。那如何删除这些网址连接呢?,一个个单击打开,发现都是网址链接。已删除,干干净净,启动台回来了。进入或者删除整个文件夹。_chrome自带的表格怎么删

基于Java+SpringBoot+vue+elementui图书商城系统设计实现_图书商城后台管理系统设计与实现-程序员宅基地

文章浏览阅读3.9w次,点赞153次,收藏430次。主要功能包括管理员:首页、个人中心、图书分类管理、回收类别管理、新书榜管理、特价区管理、旧书回收管理、用户管理、订单评价管理、回收预约管理、图书回收管理、管理员管理、系统管理、订单管理。前台使用:首页、新书榜、特价区、旧书回收、公告资讯、个人中心、后台管理、购物车、客服。用户:首页、个人中心、订单评价管理、回收预约管理、图书回收管理、我的收藏管理、订单管理等功能。_图书商城后台管理系统设计与实现

【JZ2440笔记】裸机实验使用SDRAM_京累里101123-程序员宅基地

文章浏览阅读393次。S3C2440A 存储器控制器为访问外部存储的需要器提供了存储器控制信号。S3C2440A 包含以下特性:–大/小端(通过软件选择)–地址空间:每个 Bank 有 128M 字节(总共 1G/8 个 Bank)–大/小端(通过软件选择)–除了 BANK0(16/32 位)之外,其它全部 BANK 都可编程访问宽度(8/16/32 位)–总共 8 个存储器 Bank6 个存储器 Bank 为 ROM,SRAM 等其余 2 个存储器 Bank 为 ROM,SRAM,SDRAM 等–7 个固定的_京累里101123