要在PHP中包含的内部函数变量

时间:2009-12-02 17:24:46

标签: php

我有一个包含其他文件的功能

// some function
function SomeFunction()
{
   $someData = 'SomeData';
   include_once('some_file.php');
}

// some_file.php
<?php echo $someData; ?>

如果包含文件可以使用调用函数中的变量,我将如何使用?我将使用一些输出缓冲。

5 个答案:

答案 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();