php调用另一文件的函数,PHP中调用别的文件的include函数,要如何传参?

看起来好多文件好乱 ... 我们先不管这么多个文件的事情 ... 先把整个程序流程写在一个文件里吧 ..?

正常传递参数的场景如下 ...<?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 ... 随需随用 ... 每次调用函数的时候把变量带进去 ... 这是推荐的写法 ...

就是这样啦 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值