[英]Calling object array in method PHP
我的代碼有些麻煩。 我想在我的方法中調用對象數組值,但bu出現錯誤:
注意:未定義變量:第27行的C:\\ xampp \\ htdocs \\ frontend \\ controller \\ Users.php中的login_error
注意:嘗試在第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');
?>
您可以編寫語言庫,並從任何地方獲取它的實例(Singleton),如下所示:
在您的frontend / 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;
}
在一個文件中,您可以加載每個類:
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);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.