Heim > Backend-Entwicklung > PHP-Tutorial > Nginx – grundlegende PHP-Probleme. .

Nginx – grundlegende PHP-Probleme. .

WBOY
Freigeben: 2016-09-08 08:43:52
Original
1199 Leute haben es durchsucht

Dateien eines bestimmten Projekts

<code><?php
/**
 * 基础类
 */
abstract class Ctrl_Base extends Yaf_Controller_Abstract{
    /**
     * 开启 SESSION : 1
     * 必须登录 : 2
     * 必须管理员 : 4
     */
    protected $_auth = 0;

    /**
     * 当前登录用户
     * @var array
     */
    public $mCurUser = array();
    public $l;
    public $lang;

    /**
     * 构造函数
     */
    public function init(){
        $tSqlite = $this->sqlite();
        $tLCount = $tSqlite->getRow("SELECT COUNT(0) c FROM sqlite_master where type='table' and name='lang'");
        $tLang = array();
        if(!empty($tLCount['c'])){$tLang = $tSqlite->getRow($tSql = 'select * from lang');}
        
        $tLang = empty($tLang['lang'])?'cn':$tLang['lang'];
        include realpath(dirname(__FILE__).'../../../lang/'.$tLang.'/common.php');
        $lang = json_encode($lang);
        $lang = json_decode($lang);
        $this->assign('lang' , $lang);
        $this->assign('l' , $tLang);
        $this->l = $tLang;
        $this->lang = $lang;
        //(1 & $this->_auth) && $this->_session();
        //(1 < $this->_auth) && $this->_role();
        $tSqlite->close();
    }</code>
Nach dem Login kopieren
Nach dem Login kopieren

Frage 1:

<code>        $lang = json_encode($lang);
        $lang = json_decode($lang);</code>
Nach dem Login kopieren
Nach dem Login kopieren

Was bedeuten diese beiden Sätze hier? , warum sollte $lang in das JSON-Format konvertiert und dann in PHP-Variablen analysiert werden? Ist das nicht unnötig?
Frage 2:

<code>        $this->assign('lang' , $lang);
        $this->assign('l' , $tLang);
        $this->l = $tLang;
        $this->lang = $lang;</code>
Nach dem Login kopieren
Nach dem Login kopieren

Wie verstehen Sie diese vier Sätze?
Mein Verständnis ist, dass der erste Parameter von „assign“ der Variablenname ist, gefolgt von seinem Variablenwert, aber

<code>`$this->l = $tLang;`不就是将`$tLang`赋值给`$this`的`l`属性么?这四句不就重复了么?</code>
Nach dem Login kopieren
Nach dem Login kopieren

Antwortinhalt:

Dateien eines bestimmten Projekts

<code><?php
/**
 * 基础类
 */
abstract class Ctrl_Base extends Yaf_Controller_Abstract{
    /**
     * 开启 SESSION : 1
     * 必须登录 : 2
     * 必须管理员 : 4
     */
    protected $_auth = 0;

    /**
     * 当前登录用户
     * @var array
     */
    public $mCurUser = array();
    public $l;
    public $lang;

    /**
     * 构造函数
     */
    public function init(){
        $tSqlite = $this->sqlite();
        $tLCount = $tSqlite->getRow("SELECT COUNT(0) c FROM sqlite_master where type='table' and name='lang'");
        $tLang = array();
        if(!empty($tLCount['c'])){$tLang = $tSqlite->getRow($tSql = 'select * from lang');}
        
        $tLang = empty($tLang['lang'])?'cn':$tLang['lang'];
        include realpath(dirname(__FILE__).'../../../lang/'.$tLang.'/common.php');
        $lang = json_encode($lang);
        $lang = json_decode($lang);
        $this->assign('lang' , $lang);
        $this->assign('l' , $tLang);
        $this->l = $tLang;
        $this->lang = $lang;
        //(1 & $this->_auth) && $this->_session();
        //(1 < $this->_auth) && $this->_role();
        $tSqlite->close();
    }</code>
Nach dem Login kopieren
Nach dem Login kopieren

Frage 1:

<code>        $lang = json_encode($lang);
        $lang = json_decode($lang);</code>
Nach dem Login kopieren
Nach dem Login kopieren

Was bedeuten diese beiden Sätze hier? , warum sollte $lang in das JSON-Format konvertiert und dann in PHP-Variablen analysiert werden? Ist das nicht unnötig?
Frage 2:

<code>        $this->assign('lang' , $lang);
        $this->assign('l' , $tLang);
        $this->l = $tLang;
        $this->lang = $lang;</code>
Nach dem Login kopieren
Nach dem Login kopieren

Wie verstehen Sie diese vier Sätze?
Mein Verständnis ist, dass der erste Parameter von „assign“ der Variablenname ist, gefolgt von seinem Variablenwert, aber

<code>`$this->l = $tLang;`不就是将`$tLang`赋值给`$this`的`l`属性么?这四句不就重复了么?</code>
Nach dem Login kopieren
Nach dem Login kopieren

Reden wir nicht darüber, wie der Code geschrieben ist.

Das erste Problem besteht darin, das Array in ein Objekt umzuwandeln.

Bei der zweiten Frage handelt es sich um die Zuweisung einer registrierten Vorlagenvariablen, die direkt in der Ansicht verwendet werden kann$langEs ist also anders

Frage 1: Ich weiß nicht, woher die Variable $lang hier kommt. . . . Diese Art der json_encode()- und json_decode()-Verkettung kann jedoch zur Datentypkonvertierung verwendet werden. Wenn $lang ursprünglich ein Array ist, wird es nach der Ausführung dieser beiden Sätze in ein Objekt umgewandelt.

Frage 2: Ich bin auch nicht ganz klar. .

Frage 1: $lang-Variable in Objekt konvertieren wird meist durch include eingeführt. In der Template-Engine sind die Formate von Arrays und Objekten unterschiedlich. Vielleicht fand der Autor es einfach zu verwenden, also hat er es übertragen.
Frage 2: Übergeben Sie $lang und $tLang an die Seite, um Seitenaufrufe zu erleichtern. Die Verwendung von $this->l und $this->lang besteht darin, sie in der aktuellen Klasse zu speichern, um sie einfach selbst oder außerhalb aufrufen zu können. Und jedes Mal, wenn wir eine neue Klasse erstellen, übergibt die Klasse zwei Variablen an die Seite und weist die Variablenwerte den Eigenschaften der aktuellen Klasse zu.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage