一般是a.php
<?php
echo $var;
?>b.php
立即学习“PHP免费学习笔记(深入)”;
<?php
$var = 'ssss';
include 'a.php'; // 输出 ssss
?>但是如果a.php
<?php
echo $var;
?>f.php
<?php
function i($path) {
include $path;
}
?>b.php
立即学习“PHP免费学习笔记(深入)”;
<?php
include 'f.php';
$var = 'ssss';
i('a.php'); // Undefined variable: var
?>请问这种情况下要如何传参?先谢谢。
后台主要功能如下: 一、系统管理:管理员管理,可以新增管理员及修改管理员密码;数据库备份,为保证您的数据安全本系统采用了数据库备份功能;上传文件管理,管理你增加产品时上传的图片及其他文件。 二、企业信息:可设置修改企业的各类信息及介绍。 三、产品管理:产品类别新增修改管理,产品添加修改以及产品的审核。 四、下载中心:可分类增加各种文件,如驱动和技术文档等文件的下载。 五、订单管理:查看订单的详
0
一般是a.php
<?php
echo $var;
?>b.php
立即学习“PHP免费学习笔记(深入)”;
<?php
$var = 'ssss';
include 'a.php'; // 输出 ssss
?>但是如果a.php
<?php
echo $var;
?>f.php
<?php
function i($path) {
include $path;
}
?>b.php
立即学习“PHP免费学习笔记(深入)”;
<?php
include 'f.php';
$var = 'ssss';
i('a.php'); // Undefined variable: var
?>请问这种情况下要如何传参?先谢谢。
看起来好多文件好乱 ... 我们先不管这么多个文件的事情 ... 先把整个程序流程写在一个文件里吧 ..?
正常传递参数的场景如下 ...
<?php /* $var defined in a.php ... */ $var = 'ssss'; /* print $var out in b.php ... */ echo $var;
无法正常传递参数的场景如下 ...
<?php
/* define a function in t.php ... */
function i( $path ) {
/* print value out suppose if $path equals to 'a.php' ... */
echo $var;
}
/* define $var and call function in b.php ... */
$var = 'ssss';
i( 'a.php' );事实上这么一写你就会发现 ... 参数无法传递的情况与是否使用了 include 完全无关 ...
唯一影响参数传递的原因叫做变量作用域 ... 这是编程的基础知识 ... 你可以参考链接 ...
现在弄明白了原因 ... 我们来考虑解决方案 ...
第一种办法 ... 不传参 ... 直接在函数内部调用全局变量 ... 方法有两种 ... 效果是一样的 ...
<?php
function i( $path ) {
echo $GLOBALS['var'];
}<?php
function i( $path ) {
global $var;
echo $var;
}这两种方法都是绕过变量作用域让你可以在函数内部获得全局变量的引用 ... 注意是引用 ...
也就是如果你一不小心就会修改掉这个全局变量的值 ... 而在多数情况下这不是我们想要的 ...
第二种方法 ... 比第一种方法实现起来麻烦 ... 但是更加整洁可靠 ...
<?php
/* make a new slot named $package ... */
function i( $path, array $package ) {
/* extract our package ... */
extract( $package );
/* print just like your are in global scope ... */
echo $var;
}
/* call function i() like this ... */
i( 'a.php', [
'var' => 'ssss'
] );不使用 global ... 随需随用 ... 每次调用函数的时候把变量带进去 ... 这是推荐的写法 ...
就是这样啦 ...
可以参考一下 PHPTemplate 或者 Smarty 的实现。
使用时使用方法进行传递,调用时直接使用相应的 key 获取。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号