我有这段代码:
//config.php
$EXAMPLE['try1'] = "...." ;
$EXAMPLE['try2'] = "...." ;
所以,我有另一个带有php类的文件:
class try {
public function __construct() {
if($this->try1() && $this->try2()){
return true;
}
}
public function try1(){
require_once 'config.php' ;
echo $EXAMPLE['try1'];
return true;
}
public function try2(){
require_once 'config.php' ;
echo $EXAMPLE['try2'];
return true;
}
}
但就我而言,$EXAMPLE['try1']
是.....,但$EXAMPLE['try2']
为空......为什么?我尝试在首页添加require_once 'config.php' ;
,在global $EXAMPLE;
后添加,但$EXAMPLE
为空,为什么?
答案 0 :(得分:1)
使用require
,而不是require_once
。否则,如果在一个函数中加载文件,它将不会加载到另一个函数中,因此它不会获取变量。
最好完全要求函数外部的函数。然后将$EXAMPLE
声明为全局变量。
require_once 'config.php';
class try {
public function __construct() {
if($this->try1() && $this->try2()){
return true;
}
}
public function try1(){
global $EXAMPLE
echo $EXAMPLE['try1'];
return true;
}
public function try2(){
global $EXAMPLE
echo $EXAMPLE['try2'];
return true;
}
}
答案 1 :(得分:1)
在__construct
方法中要求您的文件。因此,在try1
方法中需要一次需要文件。
class try {
private $_example = array();
public function __construct() {
require_once 'config.php';
$this->_example = $EXAMPLE;
return $this->try1() && $this->try2();
}
public function try1(){
echo $this->_example['try1'];
return true;
}
public function try2(){
echo $this->_example['try2'];
return true;
}
}