如何回显另一个文件中定义的对象的属性

时间:2013-06-30 19:42:47

标签: php oop include

我开始学习PHP和OOP而且我被困住了。我有3个不同的PHP 我在下面粘贴的文件。在代码之后陈述了特定的问题:

File1.php:

<?php
class Page{
    public $intro;
    public $article;

}

$TD = new Page($intro, $article); 


$TD->intro="I'm the intro";
$TD->article="I'm an article";
?>

File2.php

<?php
function test($page){
switch($page){
    case "A":
        include "file1.php";
        break;
    case "B":
        include "anotherfile.php";
        break;
    }
}
?>

File3.php(必须打印的东西):

<?php
$page="A";
include "file2.php";

test($page);

echo $TD->intro;
echo $TD->article;
?>

我无法回应(说$ TD是未定义的),但我一直在测试,似乎它正在有效地加载file1.php(其中定义了$ TD对象)。此外,如果我将有问题的回声粘贴到file1.php并加载此页面,则回声起作用。

我认为这是显而易见的,但我还没有能力弄明白。

提前感谢您的回复并阅读此内容! :)

1 个答案:

答案 0 :(得分:1)

因为include包含在函数的范围内,所以include中定义的变量只能在函数内部显示。

function test($page){
    switch( $page) {
        case "A":
            include "file1.php";
            // $TD is in scope here, but not outside this scope
        break;
    }
}

快速解决方法是在global $TD;功能的顶部添加test()