>  기사  >  백엔드 개발  >  nginx-php 기본 문제. .

nginx-php 기본 문제. .

WBOY
WBOY원래의
2016-09-08 08:43:521174검색

특정 프로젝트의 파일

<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>

질문 1:

<code>        $lang = json_encode($lang);
        $lang = json_decode($lang);</code>

여기서 이 두 문장은 무엇을 의미하나요? , $lang을 json 형식으로 변환한 다음 PHP 변수로 구문 분석해야 하는 이유는 무엇입니까? 이건 불필요하지 않은가?
질문 2:

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

이 네 문장을 어떻게 이해하시나요?
내가 이해한 바에 따르면 할당의 첫 번째 매개변수는 변수 이름이고 그 뒤에 변수 값이 옵니다. 그러나

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

답글 내용:

특정 프로젝트의 파일

<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>

질문 1:

<code>        $lang = json_encode($lang);
        $lang = json_decode($lang);</code>

여기서 이 두 문장은 무엇을 의미하나요? , $lang을 json 형식으로 변환한 다음 PHP 변수로 구문 분석해야 하는 이유는 무엇입니까? 이건 불필요하지 않은가?
질문 2:

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

이 네 문장을 어떻게 이해하시나요?
내가 이해한 바에 따르면 할당의 첫 번째 매개변수는 변수 이름이고 그 뒤에 변수 값이 옵니다. 그러나

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

코드가 어떻게 작성되는지 이야기하지 말자..

첫 번째 문제는 배열을 객체로 변환하는 것입니다.

두 번째 질문인 할당은 등록된 템플릿 변수로, 뷰에서 직접 사용할 수 있습니다$lang. 그래서 다릅니다

.

질문 1: 여기 변수 $lang가 어디서 왔는지 모르겠습니다. . . . 그러나 이러한 json_encode()json_decode() 연결을 데이터 유형 변환에 사용할 수 있습니다. 처음에 $lang이 배열인 경우 이 두 문장을 실행한 후 객체로 변환됩니다.

질문 2: 저도 잘 모르겠습니다. .

질문 1: $lang 변수를 객체로 변환합니다. $lang은 대부분 include로 도입됩니다. 템플릿 엔진에서는 배열과 객체의 형식이 다릅니다. 아마도 작성자가 사용하기 쉽다고 생각해서 옮겨놓은 것 같습니다.
질문 2: 페이지 호출을 용이하게 하려면 $lang 및 $tLang을 페이지에 전달하세요. $this->l 및 $this->lang을 사용하는 것은 자체적으로 또는 외부에서 쉽게 호출할 수 있도록 현재 클래스에 저장하는 것입니다. 그리고 새 클래스를 만들 때마다 클래스는 두 개의 변수를 페이지에 전달하고 변수 값을 현재 클래스의 속성에 할당합니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.