Php 无法从类内部调用外部变量
在包含外部变量方面需要一些帮助 我有这个文件Php 无法从类内部调用外部变量,php,oop,class,Php,Oop,Class,在包含外部变量方面需要一些帮助 我有这个文件lang.class.php class Lang { public $DefaultLang = 'en'; public function __construct() { require_once($_SERVER['DOCUMENT_ROOT'] . "/system/lang/en.php"); } public function MainLang() { return $th
lang.class.php
class Lang {
public $DefaultLang = 'en';
public function __construct() {
require_once($_SERVER['DOCUMENT_ROOT'] . "/system/lang/en.php");
}
public function MainLang() {
return $this->DefaultLang;
}
public function Translate($String, $Array = "") {
if($Array != '')
$LangArray = $Array;
echo $LangArray[$String];
}
public function __destruct() {}
}
语言文件包含在\u构造()中。
这个文件en.php
包含一个数组
$LangArray = array(
"home" => "Home",
"news" => "News",
"info" => "Info"
);
该类由以下命令调用:$Lang->Translate('home')
这将不返回任何内容,但如果我执行此操作,$Lang->Translate('home',$LangArray)
,它将从数组键home
返回值
那么,在不通过函数获取数组的情况下,如何获取数组呢
谢谢你的帮助 当您使用
require\u*
或include\u*
时,请考虑这样一种情况,即所包含文件中的代码只需粘贴,而不是include指令。因此,如果包含该文件,将有一个名为$LangArray
的变量。您可以获取该变量并将其分配给类中的私有属性,然后使用它
class Lang {
private $LangArray; // <- store the array in a private property
public function __construct() {
require_once($_SERVER['DOCUMENT_ROOT'] . "/system/lang/en.php");
$this->LangArray = $LangArray; // <- assign the loaded array
}
public function Translate($String) {
echo $this->LangArray[$String]; // <- use the loaded array
}
}
class语言{
private$LangArray;//LangArray=$LangArray;//LangArray[$String]//