如何在php中包含所包含的元素?

时间:2014-07-19 12:08:58

标签: php include

当我包含一个php文件/类时,我想得到类/包含的变量/元素,不知怎的,我可能会尝试反射来做到这一点?如果是这样,怎么样?
例如,我有一个名为foo.php的PHP类:

<?php
class foo
{
     public function bar()
     {
         return "foobar";
     }
}
?>

然后,在bar.php中,我想:

<?php
class bar
{
     public function foo()
     {
         $included_resources = include("foo.php"); // Notice, $included_resources is an array
         if (($key = array_search("foo", $included_resources)) != false) // "foo" can be any variable or class name
            return $included_resources[$key]->bar();
     }
}
$helloworld = new bar();
echo $helloworld->foo();
?>

结果:字符串值为&#34; foobar&#34;将在屏幕上显示

1 个答案:

答案 0 :(得分:1)

首先,在包含文件之前将声明的变量存储在数组中。然后做包含。然后再次将声明的变量存储在另一个数组中。然后只需检查差异:

$declared_vars_before = get_defined_vars();
include 'another_file.php';
$declared_vars_after = get_defined_vars();
foreach ($declared_vars_after as $value) {
  if (!in_array($value, $defined_vars_before)) {
    echo $value . '<br>';
  }
}

与类相同,但使用get_declared_classes而不是get_defined_vars。