我的代码有问题。我想在我的方法中调用对象数组值,有错误:
注意:未定义的变量:login_error in 第27行的C:\ xampp \ htdocs \ frontend \ controller \ Users.php
注意:尝试获取非对象的属性 第27行的C:\ xampp \ htdocs \ frontend \ controller \ Users.php
这是我的控制器Users.php
class Users extends Controller
{
function doLogin(){
if(isset($_POST['zaloguj'])){
Users::error($login_error->empty);
}
}
}
语言文件,我有我的对象数组。
<?php
$login_error = (object) array(
'empty' => 'ERROR TEXT',
'dberror' => 'ERROR TEXT 2'
);
?>
具有错误功能的全局控制器:
public function error($text){
echo '<div class="alert alert-danger">
<strong>Błąd!</strong> '.$text.'</div>';
}
public function success($text){
echo '<div class="alert alert-success">
<strong>Brawo!</strong> '.$text.'</div>';
}
public function info($text){
echo '<div class="alert alert-info">
<strong>Uwaga!</strong> '.$text.'</div>';
}
加载器 - 我将所有控制器加载到一个文件中。
<?php
require_once('config.php');
///////////////////////////////////
// INCLUDING LANGUAGES
///////////////////////////////////
include('frontend/language/pl_PL.php');
///////////////////////////////////
// INCLUDING CONTROLERS
//////////////////////////////////
require_once('frontend/controller/Controller.class.php');
require_once('frontend/controller/Users.php');
//////////////////////////////////
// INCLUDING MODELS
//////////////////////////////////
require_once('frontend/model/model.php');
require_once('frontend/model/Users.php');
?>
答案 0 :(得分:0)
您可以编写一个语言库并从其他地方获取它的实例(Singleton),如下所示:
在你的前端/ libraries / language.php:
class Language{
private static $instance;
public $login_error;
/*
..etc
*/
public function __construct(){
self::$instance = $this;
}
public function load_file($file){
include $file;
$this->login_error = $login_error;
/*
And other variables..
*/
}
public static function &get_instance(){ // Singleton get instance
return self::$instance;
}
在您加载每个班级的ONE文件中:
require_once('config.php');
///////////////////////////////////
// INCLUDING LANGUAGES
///////////////////////////////////
include('frontend/libraries/language.php');
$language = new Language();
$language->load_file('frontend/language/pl_PL.php');
///////////////////////////////////
// INCLUDING CONTROLERS
//////////////////////////////////
require_once('frontend/controller/Controller.class.php');
require_once('frontend/controller/Users.php');
//////////////////////////////////
// INCLUDING MODELS
//////////////////////////////////
require_once('frontend/model/model.php');
require_once('frontend/model/Users.php');
在你的控制器上获取像这样的语言库的Singleton实例:
class Users extends Controller{
private $language;
public function __construct(){
parent::__construct();
$this->language =& Language::get_instance();
}
public function doLogin(){
if(isset($_POST['zaloguj'])){
Users::error($this->language->login_error->empty);
}
}
}