我在php中有一个函数:
function importSomething(){
include_once('something.php');
}
Run Code Online (Sandbox Code Playgroud)
我如何使它include_once具有全球效应?导入的所有内容都将包含在全球范围内?
include()和朋友限制范围.除非将调用移出函数范围,否则无法更改包含内容所适用的范围.
我想解决方法是从函数返回文件名,并调用它将结果传递给include_once()...
function importSomething() {
return 'something.php';
}
include_once(importSomething());
Run Code Online (Sandbox Code Playgroud)
它看起来不太好,你一次只能返回一个(除非你返回一个文件名数组,循环遍历它并include_once()每次调用),但是范围界定是该语言结构的一个问题.
您可以像这样返回文件中的所有变量。
function importSomething(){
return include_once 'something.php';
}
Run Code Online (Sandbox Code Playgroud)
只要something.php看起来像...
<?php
return array(
'abc',
'def'
);
Run Code Online (Sandbox Code Playgroud)
您可以将其分配给全局变量...
$global = importSomething();
echo $global[0];
Run Code Online (Sandbox Code Playgroud)
如果您想变得非常疯狂,则可以将extract()所有这些数组成员都放入作用域中(在您的情况下为全局)。
| 归档时间: |
|
| 查看次数: |
6484 次 |
| 最近记录: |