2013-06-30 35 views
1

我開始學習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是未定義的),但我一直在測試,似乎它是有效加載th e file1.php(其中定義了$ TD對象)。此外,如果我將有問題的回聲粘貼到file1.php中並加載此頁面,則回聲將起作用。

我想這是明顯的,但我還沒有能力弄清楚。

在此先感謝您的回覆並閱讀本文! :)

回答

1

因爲你的包含在函數的範圍內,所以在include中定義的變量只在函數內部可見。

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

一個快速的解決辦法是在你test()函數的頂部添加global $TD;

+0

非常感謝@nickb !!!! :) – Naima

相關問題