某个项目的文件
立即学习“PHP免费学习笔记(深入)”;
<?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();
}问题一:
$lang = json_encode($lang);
$lang = json_decode($lang);这两句在这里什么作用?,为什么要把$lang变成json格式后又解析成php变量?这不是多此一举么?
问题二:
$this->assign('lang' , $lang);
$this->assign('l' , $tLang);
$this->l = $tLang;
$this->lang = $lang;这四句又怎么理解?
我的理解是assign的第一个参数是变量名,后面是它的变量值,可是
`$this->l = $tLang;`不就是将`$tLang`赋值给`$this`的`l`属性么?这四句不就重复了么?
某个项目的文件
立即学习“PHP免费学习笔记(深入)”;
<?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();
}问题一:
$lang = json_encode($lang);
$lang = json_decode($lang);这两句在这里什么作用?,为什么要把$lang变成json格式后又解析成php变量?这不是多此一举么?
问题二:
在原版的基础上做了一下修正:增加1st在线支付功能与论坛用户数据结合,vip也可与论坛相关,增加互动性vip会员的全面修正评论没有提交正文的问题特价商品的调用连接问题删掉了2个木马文件去掉了一个后门补了SQL注入补了一个过滤漏洞浮动价不能删除的问题不能够搜索问题收藏时放入购物车时出错点放入购物车弹出2个窗口修正定单不能删除问题VIP出错问题主题添加问题商家注册页导航连接问题添加了导航FLASH源文
0
$this->assign('lang' , $lang);
$this->assign('l' , $tLang);
$this->l = $tLang;
$this->lang = $lang;这四句又怎么理解?
我的理解是assign的第一个参数是变量名,后面是它的变量值,可是
`$this->l = $tLang;`不就是将`$tLang`赋值给`$this`的`l`属性么?这四句不就重复了么?
先不说代码写的怎么样..
第一个问题, 就是把数组转换成对象.
第二个问题, assign是注册模板变量, 在view里面可以直接使用$lang. 所以是不一样的
问题一:这里$lang的变量不知道哪里来的。。。。不过这种json_encode(),json_decode()连写是可以做数据类型转换的。如果最初$lang是一个array,执行完这两句就转换为object。
问题二:我也不是很清楚。。
问题一:将$lang变量转化为object(对象).$lang多半是include引入的。在模板引擎中,数组跟对象的格式是不一样的。可能是作者用的顺手,所以就转了。
问题二:是将$lang和$tLang传递到页面上方便页面调用。而用了$this->l和$this->lang是将其保存在当前类中方便自身调用或者在外调用。而当我们每次new出该类时,该类会传递两个变量到页面,同时并将变量值赋值给当前类的属性。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号