我有一个包含其他文件的功能
// some function
function SomeFunction()
{
$someData = 'SomeData';
include_once('some_file.php');
}
// some_file.php
<?php echo $someData; ?>
如果包含文件可以使用调用函数中的变量,我将如何使用?我将使用一些输出缓冲。
答案 0 :(得分:2)
只要在$someData
中定义了SomeFunction()
,some_file.php
就可以访问$someData
。
如果您需要访问SomeFunction()
之外的变量,请将它们作为参数传递给SomeFunction()
。
答案 1 :(得分:0)
已经可以使用:)
请参阅include()
答案 2 :(得分:0)
最好不要使用全局变量,而是将变量作为参数传递:
function SomeFunction()
{
$someData = 'SomeData';
include_once('some_file.php');
some_foo($someData);
}
否则,您可能会冒险使用spaghetty代码转换代码库,至少从长远来看。
答案 3 :(得分:0)
看起来有点无组织,在函数中包含文件......怎么样......
function SomeFunction()
{
$someData = 'SomeData';
return $someData;
}
$data = SomeFunction();
<?php include('file.php') ?> // file.php can now use $data
答案 4 :(得分:0)
您无需做任何事情。使用include()
(和它的兄弟姐妹)类似于将包含文件中的代码复制粘贴到调用include()的地方的包含文件中。
简单示例
<强> test.php的强>
<?php
$foo = 'bar';
function test()
{
$bar = 'baz';
include 'test2.php';
}
test();
<强> test2.php 强>
<?php
echo '<pre>', print_r( get_defined_vars(), 1 ), '</pre>';
同样,这类似于组合
<?php
$foo = 'bar';
function test()
{
$bar = 'baz';
echo '<pre>', print_r( get_defined_vars(), 1 ), '</pre>';
}
test();