static 和 global
global
global关键字如果用在function内部,则说明这个function内用的这个变量是全局的,全局变量就是在整个页面里都能起作用。例如
- $conf = 1;
- function conf_test() {
- global $conf;
- return ++$conf;
- }
- echo conf_test()."<br>";
- echo conf_test()."<br>";
输出:
2
3
如果没有global $conf;这句,输出就变成了全是1了。global起的作用就是,在function中,声明这个函数内用的$conf不是局部的,而是全局可用的。或者说,在函
数内部定义的这个$conf不是函数内的变量,而是这个函数外面(也就是指$conf = 1;)定义的那个$conf.其实这里如果用$GLOBALS数组,就比较容易理解了。我们在
页面声明一个变量$conf其实相当于在$GLOBALS数组中定义了一项$GLOBALS['conf'].而这个$GLOBALS是全局可见的。所以上面的代码制作成$GLOBALS格式的写法就是
- $conf = 1;
- function conf_test() {
- return ++$GLOBALS['conf'];
- }
- echo conf_test()."<br>";
- echo conf_test()."<br>";
输出:
2
3
第二个是static关键字
static就是表示静态。所谓的静态,其实是在function或者class内部而言的。function中static的变量,在funciton执行完之后,不会消失,可以在下次执行的时候
继续使用,好,还是先给用例子说明吧
- function conf_test() {
- static $conf = 1;
- return ++$conf;
- }
- echo conf_test()."<br>";
- echo conf_test()."<br>";
输出:
2
3
在这里,如果static $conf = 1改成$conf = 1,那么输出就变成了
2
2
在类中,static变量和这个例子中也一样,仅仅在类内部有效,并且会持续保持上次的值。
static 和 global的更多相关文章
- C/C++ static vs global
static has a very simple logic to it. If a variable is static, it means that it is a global variable ...
- swoole为什么不建议使用static和global
$http = new swoole_http_server("0.0.0.0", 9501); $http->on("request", functio ...
- error X3025:global variables are implicitly constant, enable compatibility mode to allow modification
global variables are implicitly constant, enable compatibility mode to allow modification http://xbo ...
- php中变量引用&不可与global共同使用
问题来源,新公司debug. 程序中代码大致如下 class Ci { private static $instance = NULL; public $name = 'hello'; public ...
- 从DOM操作看Vue&React的前端组件化,顺带补齐React的demo
前言 接上文:谈谈我对前端组件化中“组件”的理解,顺带写个Vue与React的demo 上次写完博客后,有朋友反应第一内容有点深,看着迷迷糊糊:第二是感觉没什么使用场景,太过业务化,还不如直接写Vue ...
- [c++] Smart Pointers
内存管理方面的知识 基础实例: #include <iostream> #include <stack> #include <memory> using names ...
- [Scala] Scala基础知识
Object An object is a type of class that can have no more than one instance, known in object-oriente ...
- PHP变量作用域详解(二)
学过C的人用PHP的时候一般会相当顺手,而且感到PHP太方便太轻松.但在变量作用域这方面却与C有不同的地方,搞不好会相当郁闷,就找不到错误所在.昨晚就与到这么一个问题,是全局变量在函数中的问题.今天搜 ...
- effective OC2.0 52阅读笔记(六 块与大中枢派发)
派发队列:dispatch_queue 操作队列:NSOperationQueue 组:dispathc_group_t 37 理解“块”这一概念 总结:块就是一个值,且自有其相关类型.块的强大之处 ...
随机推荐
- USB速率识别
低速设备D-上有一个1.5k欧的上拉电阻.高速和全速设别在D+上有一1.5k欧上拉电阻.连接后通过检测电压变化来了解设备是否为低速设别. 低速下:D+为“0”,D-为“1”是为“J”状态,“K”状态相 ...
- MySQL--修改普通表为自增表
=========================================================== 修改普通表为自增表 将普通表修改为自增表,可分为两种类型: 1.将现有列修改为自 ...
- How Distributed Outer Joins on PostgreSQL with Citus Work
转自: https://docs.citusdata.com/en/v7.5/articles/outer_joins.html SQL is a very powerful language for ...
- 3d之ui快速切换图像
Requirement canon相机continuous mode(Burst mode) 抓图variation (230~320ms) 1. python + opencv 用cvWaitKey ...
- js 逻辑的短路运算
&& 与运算 同时为true,才为true: 表达式1为false,不用看表达式2: || 或运算 有一个为true,就为true: 表达式1为true,不用看表达式2: && ...
- file-loader 与 url-loader 的区别
url-loader是对file-loader的一个封装,比如webpack中对图片的加载器配置 {test: /\.(png|jpg)$/, loader: 'url-loader?limit=81 ...
- HTML5 localStorage使用教程
在客户端存储数据,HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前, ...
- 3台服务器Redis高可用哨兵模式实现(转)
http://www.linuxidc.com/Linux/2017-05/143521.htm
- android studio 更新 Gradle错误解决方法(Gradle sync failed)
android studio 更新 Gradle错误解决方法 Android Studio每次更新版本都会更新Gradle这个插件,但由于长城的问题每次更新都是失败,又是停止在Refreshing ...
- C++ 获取类成员函数地址方法 浅析
C语言中可以用函数地址直接调用函数: void print () { printf ("function print"); } typdef void (*fu ...