php给全局变量重新赋值,SpeedPHP/全局变量赋值
通常在模板开发中,我们可以在多处定义全局变量,以供在不同的模板中显示。
全局变量的定义
建议按照不同的需要,在以下不同的位置进行全局变量的定义:
入口文件全局位置:定义常量,通常该常量是不做修改,而且在全部模板中生效,如CSS/JS/图片路径等。
控制器父类:用一个继承于spController的控制器类代替spController,然后在该控制器的构造函数中进行全局变量定义。此用法是较方便而且灵活,可以设置变量、类实例化句柄、甚至是模板HTML代码等。在所有继承于该类的控制器中生效。
当前控制器构造函数:在当前控制器中加入构造函数,在构造函数中可以进行对当前控制器全部动作生效的变量定义,同样,可以设置变量、HTML等。
首先我们在入口文件全局位置进行常量定义
require(SP_PATH."/SpeedPHP.php");
// 这里是入口文件全局位置
import(APP_PATH.'/controller/top.php'); // 需要先载入top控制器父类
define('GLOVAR','我是在入口文件定义的静态常量');
spRun();
注意:由于本例中加入了top控制器来代替spController的作用,所以需要在入口文件全局位置载入top控制器文件,否则将提示找不到top类的错误。
然后,在top类(top控制器类继承于spController,其他控制器都继承于top)的构造函数中,进行“控制器父类”的变量赋值。
// top继承于spController,从而代替spController的作用
class top extends spController
{
// 构造函数,进行全局操作的位置
function __construct(){
// 必须加入启动父类构造函数的操作
parent::__construct();
// 开始全局操作
$this->fromtop = '我在TOP的位置,在所有继承于top的控制器中都可以使用';
}
}
我们继续在当前控制器(main)的构造函数中增加变量赋值,这些变量只在当前控制器中生效——在user控制器中就没有数据了。
// 控制器都继承于top
class main extends top
{
// 构造函数,进行当前控制器全局操作的位置
function __construct(){
// 必须加入启动父类构造函数的操作
parent::__construct();
// 这里放置当前控制器的全局操作
$this->frommain = '我在MAIN的全局位置,在MAIN控制器内使用';
}
...
最后运行一下。分别对比main/index,main/show,user/index的显示结果。
参考来源
php给全局变量重新赋值,SpeedPHP/全局变量赋值相关推荐
- JQuery中使用Ajax赋值给全局变量失败异常的解决方法,jqueryajax
我们在用JQuery的Ajax从后台提取数据后想把它赋值给全局变量,但是却怎么都赋不进,为什么呢? 原因其实很简单,我们用的Ajax是异步操作,也就是说在你赋值的时候数据还没提取出来,你当然赋不进去, ...
- 局部变量和全局变量,如何减少全局变量的频繁使用
Author:快来啾啾我 ps:废了废了 文章目录 前言 一.局部变量(Local Variable) 1.局部变量是什么? 1.1局部变量存储位置 2.局部变量是什么? 二.全局变量(Global ...
- html 多页面全局变量,JavaScript如何定义全局变量
JavaScript中定义全局变量主要分为显式声明或者隐式声明.下面本篇文章就来给大家具体介绍一下,希望对大家有所帮助. 方法1:显式声明 使用var(关键字)+变量名(标识符)的方式在functio ...
- php局部全局变量,PHP局部变量与全局变量
一.局部变量 定义:在函数内部声明,且只能在函数内部调用的变量. 注意:参数也是局部变量的一种. demo1: 1 function demo1(){ 2 $age = 10; 3 } 4 5 ...
- python支持链式赋值和多重赋值_Python: 链式赋值的坑
在我们使用Python的过程中, 经常遇到赋值语句, 就像下面的那样: a = 3 b = 3 可能你会觉得我又要说什么变量赋值就是引用, 这么简单的知识就不讨论啦, 相信聪明的大家肯定都知道的, 我 ...
- php中全局变量global和超全局变量$GLOBALS
php中全局变量global和超全局变量$GLOBALS 1.global Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require ...
- python类对象赋值_Python对象赋值、浅拷贝、深拷贝
Python中,基本数据类型,理解为常见数据类型:布尔型.整型.浮点型.字符串.列表.元组.字典.集合,随语言不同而不同,但是根据在内存中存储方式的不同,区分开原子类型和容器类型. 对象赋值 对象的赋 ...
- 进程中的信号赋值与变量赋值
进程中的信号赋值与变量赋值 比较对象 信号SIGNAL 变量VARIABLE 基本用法 用于作为电路的信号连线 用于作为进程中局部数据存储单元 适用范围 在整个结构体内的任何地方都能适用 只能在所定义 ...
- C#中字段、属性、只读、构造函数赋值、反射赋值的相关
C#中字段.属性和构造函数赋值的问题 提出问题 首先提出几个问题: 1.如何实现自己的注入框架? 2.字段和自动属性的区别是什么? 3.字段和自动属性声明时的直接赋值和构造函数赋值有什么区别? 4.为 ...
最新文章
- flex 3 使用手册
- Linux内核defconfig在哪,Linux内核根目录中的配置文件.config中包含了许多宏定义,...
- Linux网卡改为动态过去IP,Linux修改网卡ens33为eth0以及centos7下修改动态IP为静态IP地址...
- EditThisCookie使用
- C++ 控制结构和函数(一) —— 控制结构
- pythonbool类型数组生成_对numpy中布尔型数组的处理方法详解
- 木老师教笨笨课堂——系列讲座(从函数指针到委托) 四、C#的委托
- 旧服务器如何虚拟化,4个步骤教你如何重复利用旧虚拟化主机
- 联通将推自有品牌手机沃Phone 基于Android
- MATLAB使用GPU加速计算
- [Swift]语言介绍
- 不用/,*,mod乘、除、取模运算的除法
- ppt中的流程图怎么整体移动_PPT中绘流程图
- Linux安装和使用Trickle的方法
- Unity两种获取屏幕点击位置的世界坐标方法
- Karen Keegans加盟罗克韦尔自动化任人力资源高级副总裁
- Explainable Artificial Intelligence Approaches: A Survey
- Python模块:Re模块、附软件开发目录规范
- Docker系列(八):Kubernetes横空出世背后的秘密
- Simple.Docx,简洁的word文件(docx格式)操作组件