php怎么在class内部使用 在 类外部定义的变量?

页面 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.

第1个回答  推荐于2018-05-06
入口文件引入
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() 方法

虽然很麻烦但是这样不破环封装性 而且好管理 不知道能否帮上你的问题本回答被网友采纳
第2个回答  2011-10-14
没明白...
第3个回答  2011-10-14
能不能具体些? 可以把类外部的变量赋值给php的class内的一个属性啊,或者当做参数传进来啊~追问

页面 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拆...
干嘛不能使用参数形式啊,那样多简单啊!

追问

对不起,这些我知道,不过不符合项目要求的,谢谢你了

追答

... ... ...

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网