簡體   English   中英

在方法PHP中調用對象數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM