PHP中静态变量和函数引用返回

  这两天看看PHP写的框架CI,源代码中写了很多静态变量和函数引用。

  官方文档地址:http://php.net/manual/zh/language.references.return.php

  简单写下用法:

  

function & fa(){

    static $a = 0;// 静态变量 不会重新被赋值0

    return $a;
}

function fb(){

    $re = & fa(); // fa()返回的引用

    $re++;
}

fb();
fb();

echo fa();// 2
时间: 2024-10-27 15:36:05

PHP中静态变量和函数引用返回的相关文章

静态变量和函数、实例变量和函数以及prototype 说明

静态变量.函数 当定义一个函数后通过 “.”为其添加的属性和函数,通过对象本身仍然可以访问得到,但是其实例却访问不到,这样的变量和函数分别被称为静态变量和静态函数,用过Java.C#的同学很好理解静态的含义. 1 function Obj(){ 2             } 3 4             Obj.a=0; //静态变量 5 6             Obj.fn=function(){ //静态函数 7 8             } 9             conso

C++类中静态变量和普通变量的区别

静态变量: 1.静态变量会被编到程序的exe里面,从程序启动到结束,它一直存在: 2.静态变量的初始化值为0: 3.全局变量默认是静态变量: 4.在类中的函数变量前面加了static的也是静态变量,只不过被语言限定在只能在函数内部使用: 5.在有MFC对话框的程序了,如果一个变量和对话框绑定,那么该变量就不能声明为静态变量,函数也是一样的,因为声明为静态变量后不能随时接受对话框内的值,    主要是因为静态变量的值设置后是不能被修改的: 6.可以使用类名+静态成员名访问此静态成员,因为静态成员存

C#中静态变量 静态类 静态成员

静态变量与非静态变量的区别如下: 1.内存分配 静态变量在应用程序初始化时,就存在于内存当中,直到它所在的类的程序运行结束时才消亡: 而非静态变量需要被实例化后才会分配内存. 2.生存周期 静态变量生存周期为应用程序的存在周期: 非静态变量的存在周期取决于实例化的类的存在周期. 3.调用方式 静态变量只能通过“类.静态变量名”调用,类的实例不能调用: 非静态变量当该变量所在的类被实例化后,可通过实例化的类名直接访问. 4.共享方式 静态变量是全局变量,被所有类的实例对象共享,即一个实例的改变了静

谈谈java中静态变量与静态方法继承的问题

谈谈java中静态变量与静态方法继承的问题 学习的中如果遇到不明白或者不清楚的的时候,就是自己做些测试,自己去试试,这次我就做一个关于静态变量的继承和静态方法继承问题的测试. 首先我先建一个父类: 这样我在建一个子类: 这些都准备好以后,我对子类创建对象,然后用  类名.静态变量/静态方法  和  对象名.静态方法/静态变量  对他们输出的结果进行测试. 这样输出种类有: 这样我输出的结果是: 这样来总结一下: 1. 通过类名来调用子类中的静态变量和静态方法,当父类与子类相同时是,子类会隐藏父类

Qt中静态变量使用方法

静态变量可以在各个页面之前使用 先定义一个用于存放静态变量的类 例如datavar 在datavar.h中添加如下代码 #ifndef DATAVAR_H #define DATAVAR_H #include <QObject> class dataVar : public QObject { Q_OBJECT public: explicit dataVar(QObject *parent = 0); static QString loginName ;//登录名 signals: publ

Vim 中的变量赋值、引用与作用域

使用 let 进行变量赋值,echo 打印变量的值, unlet 销毁变量. 对于 Vim 选项还可用 set 来更方便地操作,比如 set {option}, set no{option}, set {option}?. 普通变量可以直接引用,环境变量要加前缀 $.寄存器变量要加前缀 @.Vim 选项要加前缀 &. 变量默认作用域取决于定义的位置,函数内则为函数作用域,外部则为全局变量. 赋值和引用变量时可以使用 b:,g:,l:,t: 等前缀来指定要操作哪个作用域的变量. 和其他编程语言一样

Java中静态变量与静态方法的继承

class A { static int a = 1; static int b = 2; public static void printA() { System.out.println(a); } public static void printB() { System.out.println(b); } } class B extends A { static int a = 3; static int b = 4; public static void printB() { // 如果B

JavaScript 中对变量和函数声明的提前示例

如题所示,看下面的示例(可以使用Chrome浏览器,然后F12/或者右键,审查元素.调出开发者工具,进入控制台console输入)(使用技巧: 控制台输入时Shift+Enter可以中途代码换行) var name = "xiaoming"; (function(){ var name = name || "小张"; console.info(name); })();// 小张 (function(){ name = name || "小张";

以window作为Global目标函数效果域中的变量的函数

匿名函数与闭包运用函数表达式界说函数时,形如varfunctionNam=functionarg0,agr1{}即为匿名函数,由于function关键词后边没有标识符.闭包是指有权拜访另一个函数效果域中的变量的函数.经过在一个函数内创建另一个函数,可以创建闭包.?javascript中,只要办法是有效果域的办法中声明的变量在外部是无法拜访的2.BOMwindow目标表明浏览器的一个实例.既是经过javascript拜访浏览器窗口的一个接口,又是? ECMA Script规则的Global目标.