静态变量php跨页面,PHP的静态变量 - jone的个人页面 - OSCHINA - 中文开源技术交流社区...
静态变量只存在于函数作用域内,也就是说,静态变量只存活在栈中。一般的函数内变量在函数结束后会释放,比如局部变量,但是静态变量却不会。就是说,下次再调用这个函数的时候,该变量的值会保留下来。
只要在变量前加上关键字static,该变量就成为静态变量了。
< ?php
function test()
{
static $nm = 1;
$nm = $nm * 2;
print $nm."
";
}
// 第一次执行,$nm = 2
test();
// 第一次执行,$nm = 4
test();
// 第一次执行,$nm = 8
test();
? >
程序运行结果:
2
4
8
函数test()执行后,变量$nm的值都保存了下来了。
在class中经常使用到静态属性,比如静态成员、静态方法。
类的静态成员
静态变量$nm属于类nowamagic,而不属于类的某个实例。这个变量对所有实例都有效。
::是作用域限定操作符,这里用的是self作用域,而不是$this作用域,$this作用域只表示类的当前实例,self::表示的是类本身。
< ?php
class Test
{
public static $var = 1;
public function testMethod()
{
self::$var += 2;
echo self::$var . '
';
}
}
$test1 = new Test();
$test1 -> testMethod();
$test2 = new Test();
$test2 -> testMethod();
? >
程序运行结果:
3
5
静态属性
< ?php
class TestParent
{
public static $test = 'test var';
public function testMethod()
{
return self::$test;
}
}
class Test extends TestParent
{
public function articleMethod()
{
return parent::$test;
}
}
// 通过作用于限定操作符访问静态变量
print TestParent::$test . "
";
// 调用类的方法
$test1 = new TestParent();
print $test1->testMethod() . "
";
print Test::$test . "
";
$test2 = new Test();
print $test2->testMethod() . "
";
? >
程序运行结果:
test var
test var
test var
test var
简单的静态构造器
PHP没有静态构造器,你可能需要初始化静态类,有一个很简单的方法,在类定义后面直接调用类的Demonstration()方法。
function Demonstration()
{
return 'This is the result of demonstration()';
}
class MyStaticClass
{
//public static $MyStaticVar = Demonstration(); //!!! FAILS: syntax error
public static $MyStaticVar = null;
public static function MyStaticInit()
{
//this is the static constructor
//because in a function, everything is allowed, including initializing using other functions
self::$MyStaticVar = Demonstration();
}
} MyStaticClass::MyStaticInit(); //Call the static constructor
echo MyStaticClass::$MyStaticVar;
//This is the result of demonstration()
? >
程序运行结果:
This is the result of demonstration()
静态变量php跨页面,PHP的静态变量 - jone的个人页面 - OSCHINA - 中文开源技术交流社区...相关推荐
- 申请一个Java公众号怎么命名_警惕不规范的变量命名 - Java公众号_Kirito的技术分享的个人空间 - OSCHINA - 中文开源技术交流社区...
就在最近,项目组开始强调开发规范了,今天分享一个变量名命名不规范的小案例,强调一下规范的重要性. Boolean变量名命名规范 16年底,阿里公开了<Java开发规范手册>,其中有一条便是 ...
- Ai智能对话页面html,js人工智能对话框 - osc_q50is30g的个人空间 - OSCHINA - 中文开源技术交流社区...
对话框实现效果如图: 实现的代码如下: 京东在线客服 /*CSS标签样式的写法,直接写标签名*/ body{ background:url("images/1.jpg") no-r ...
- python变量无需指定类型对吗_Python变量类型 - osc_3rgq3dae的个人空间 - OSCHINA - 中文开源技术交流社区...
变量存储在内存中的值,这就意味着在创建变量时会在内存开辟一个空间. 基于变量的数据类型,解析器会分配指定内存,并决定什么数据可以被存储在内存中. 因此变量可以指定不同的数据类型,这些变量可以存储整数. ...
- php rn 返回,rn滑动返回页面监听 - osc_13a0punx的个人空间 - OSCHINA - 中文开源技术交流社区...
开发rn的同学都已经知道这个问题很坑了,真的很难弄,网上的方法尝试过很多,返回的的时候回调,是用的最多的,最开始我也是用的这种方式,但是滑动返回的时候监听不到.并且用起来也比较麻烦,不但需要在当前页面 ...
- php天下第一 金馆长,php入门1 - 金馆长1的个人页面 - OSCHINA - 中文开源技术交流社区...
一.基本语法: 格式: php脚本块以<?php ......content ?>这种格式. 结束:每句结束分号 注释://单行 /**/注释块 输出文本指令: echo 和 p ...
- python清空变量值_Python的变量 - YGH1215的个人空间 - OSCHINA - 中文开源技术交流社区...
听完下面这首日语歌,你也差不多阅读完此文了 : ) 1. 概念 Python变量是用于存储值所在的内存位置.换句话说,python程序中的变量将数据提供给计算机进行处理. Python中的每个值都 ...
- 静态html的ajax如何发请求,静态页面ajax - 冥焱的个人空间 - OSCHINA - 中文开源技术交流社区...
1.静态页面 $.ajax({ type:"get", url:"http://localhost:8080/app/register/sendSMS",//请 ...
- 去静态化 php,PHP页面静态化 - 菜鸟要飞啊的IT小窝 - OSCHINA - 中文开源技术交流社区...
静态网页是服务器上面真实存在的页面,它不需要编译,用户就可以直接访问这样的网页,后缀一般为.html或者是.htm.如果我们把这个网页上传到我们的服务器或者是空间,那么它就可以通过直接访问我们的域名去 ...
- html三列布局源码,HTML三列布局 - 黄柳淞的个人页面 - OSCHINA - 中文开源技术交流社区...
1.三列布局1 三列布局 body{padding: 0;margin: 0;} .left{width:33.3%;height: 500px;background-color: #ccc;floa ...
最新文章
- Python文本预处理:步骤、使用工具及示例
- Android -- 消息处理机制源码分析(Looper,Handler,Message)
- cricheditview实现语法高亮和行号_Markdown语法详解及工具介绍
- 互联网推送服务原理:长连接+心跳机制(MQTT协议)
- Project Euler
- Qt 图片自适应QLabel大小
- c语言pow函 新闻,c语言pow函数(C语言pow函数)
- 阿里云OSS使用详解(java版本)
- python代码复制运行不了_pycharm 复制代码出现空格的解决方式
- 偏微分方程的matlab解法微盘,偏微分方程的MATLAB解法--陆君安.pdf
- 深发银行为什么要更名为平安银行?
- T-SQL Recipes之Database Backups
- Educational Codeforces Round 40千名记
- 如果计算机电源突然断电 会导致,突然断电对电脑伤害有多大?
- Node 在沪江的大规模实践
- 国税发票查验API接口说明
- matlab如何与ccs关联,CCS与Matlab
- 鲁大师linux系统打印机驱动怎么安装,鲁大师安装打印机驱动的具体操作方法
- windows7 中文乱码解决方法
- wpf指定的元素已经是另一个元素的逻辑子元素。请先将其断开连接。_大魔王王者荣耀绝悟,游戏AI逻辑的底层是啥?...
热门文章
- java cors_JAVA用CORS实现跨域请求
- 【Swin Transformer】Win10使用Swin Transformer做目标检测 (使用自己的数据集 + 图解超详细)
- 达人评测 i9 13900H和r9 5900hx选哪个
- 学计算机选北京工业还是西南交通,本科生物医学工程专业排名,2020选择哪所大学好?...
- Python——读取txt文件每一行数据
- 计算机网络协议第二章,链路层协议
- 如何本地部署admui?
- 偶像工场,开启虚拟人数字藏品新时代
- 成都数字孪生工厂3D模型,三维可视化建模,三维虚拟仿真交互模型
- CSS好玩关键字记录