页面 a.php 定义了一堆常量及变量,其中有个变量 $a = array(1,2,3,4,5);
页面 b.php 定义了一个类:
class b {
var $c;
public __construct () {
$this->c = $a // 在这里使用变量a
}
}
现在知道的的方式是使用$GLOBALS['a'],但是这样开启register_globals 太不安全,如果关闭的话 $GLOBALS就不能使用了
想问下,【不能使用参数形式】怎么才能直接使用 外部变量 $a.
include 'app/configs/config.inc.php';
include CORE_DIR . 'LoadConfig.class.php';
LoadConfig::setConfig($config);
unset($config);
而'app/configs/config.inc.php';里面是放数组的 也就是变量具体
<?php
$config = array(
'host_name'=>'127.0.0.1' ,
'user_name'=>'root' ,
'password'=>''
)
?>
而'LoadConfig.class.php'具体原理是这样的
class LoadConfig {
private static $_config;
//set方法是给属性赋值
static function setConfig($config) {
self::$_config = $config;
}
//get方法是获取属性值
static function getConfig() {
return self::$_config;
}
}
然后想用config.inc.php里的数组或者变量的话 那就引入而'LoadConfig.class.php'这个文件 执行 getConfig() 方法
虽然很麻烦但是这样不破环封装性 而且好管理 不知道能否帮上你的问题本回答被网友采纳
页面 a.php 定义了一堆常量及变量,其中有个变量 $a = array(1,2,3,4,5);
页面 b.php 定义了一个类:
class b {
var $c;
public __construct () {
$this->c = $a // 在这里使用变量a
}
}
现在知道的的方式是使用$GLOBALS['a'],但是这样开启register_globals 太不安全,如果关闭的话 $GLOBALS就不能使用了
想问下,【不能使用参数形式】怎么才能直接使用 外部变量 $a.
class b {
var $c;
public __construct ($a) {
$this->c = $a // 在这里使用变量a
}
}
$b = new b($a);
这样就可以了~
【不能使用参数形式】
追答那你就设置一个常量啊 比如 define( 'SYS_A',$a);
class b {
var $c;
public __construct () {
$this->c = SYS_A // 在这里使用变量a
}
}
然后你在类内就可以用啦
$a = array(); 是个数组,define关键字只能定义标量
追答额,你可以先把$a implode成一个字符串啊,赋值后再explode拆...
干嘛不能使用参数形式啊,那样多简单啊!
对不起,这些我知道,不过不符合项目要求的,谢谢你了
追答... ... ...
本回答被提问者采纳