+ -
当前位置:首页 → 问答吧 → 一个是对象,一个不是。怎么会这样的。

一个是对象,一个不是。怎么会这样的。

时间:2011-11-22

来源:互联网

index.php
这样导入得到$two object
require_once('./etc/one.php');
这样会是$two not ojbect
class test
{
function __construct()
{
require_once('./etc/one.php');
}
}
$test = new test();
这是为什么啊。。。。

one.php
include './etc/two.php';
$two = new two();

include './etc/three.php';
$three = new three();

two.php
class two 
{
function index(){}
}

three.php
class three 
{
function __construct()
{
global $two;
if(is_object($two))
{
echo '$two object';
}
else
{
echo '$two not object';
}
}
}

作者: technician00   发布时间: 2011-11-22

做过简单的试验!
抛开页面引入不讲,你第一次使用require_once('./etc/one.php'); 
类似于代码:
PHP code

class two{
function index(){}
}

class three
{
function __construct()
{
global $two;
if(is_object($two))
{
echo '$two object';
}
else
{
echo '$two not object';
}
}
}

$two = new two();//$two可以作为全局变量
$three = new three();


输出$two object

你的第二种方法
class test
{
function __construct()
{
require_once('./etc/one.php');
}
}
$test = new test();
类似于代码:PHP code

class two{
function index(){}
}

class three
{
function __construct()
{
global $two;
if(is_object($two))
{
echo '$two object';
}
else
{
echo '$two not object';
}
}
}

class test{
function __construct()
{
$two = new two();//不能作为全局变量
$three = new three();
}
}
$test = new test()




输出$two not ojbect

不知道明白否?

作者: baoxiaohua   发布时间: 2011-11-22