PHP:class static
简介
static关键词的一种常见用途是,当类的某个变量$var被定义为static时,那么$var就是类的变量。
这意味着:1,该类的任意一个实例对其进行修改,在该类的其它实例中访问到的是修改后的变量。
实例1:
<?php
class test
{
static public $errno = 100; public function setErrno($errno)
{
self::$errno = $errno;
} public function getErrno()
{
return self::$errno;
}
} $t1 = new test();
$t2 = new test();
echo $t1->getErrno()."\n";
$t1->setErrno(10);
echo $t1->getErrno()."\n";
echo $t2->getErrno()."\n";
输出:
100
10
10
注意:test类的static变量$errno获取方式有两种:1)直接获取 test::$errno;2)通过类函数获取
这意味着:2,static变量不随类实例销毁而销毁;
实例2:
<?php
class test
{
static public $errno = 100; public function setErrno($errno)
{
self::$errno = $errno;
} public function getErrno()
{
return self::$errno;
}
} $t1 = new test();
$t2 = new test();
echo $t1->getErrno()."\n";
$t1->setErrno(10);
echo $t1->getErrno()."\n";
echo $t2->getErrno()."\n"; unset($t1, $t2);
echo test::$errno."\n";
输出:
100
10
10
10
实例2的最后两行,虽然实例$t1和$t2已经被主动销毁,但是仍然static变量$errno仍存在。
说明3:static变量和static成员函数是完全不同的两个东西,static成员函数要求更严格,static变量可以在类的任意函数中使用
PHP:class static的更多相关文章
- Java基础知识强化02:import static 和 import
1.import static静态导入是JDK1.5中的新特性.一般我们导入一个类都用 import com.....ClassName;而静态导入是这样:import static com..... ...
- 概念:静态static相关知识
在面向对象中,有‘静态’概念,通过关键字static进行说明, 例如: 静态属性:public static $name = '小仓鼠' 静态方法:public static function Nam ...
- 转:C#: static关键字的作用
tatic意思是静态,可以修饰类.字段.属性.方法 标记为static的就不用创建实例对象调用了,可以通过类名直接点出来 static三种用法: 1.用于变量前,表示每次重新使用该变量所在方法.类或自 ...
- 05 面向对象:构造方法&static&继承&方法 &final
构造方法及其重载: /* 构造方法格式特点 * a:方法名与类名相同(大小也要与类名一致) * b:没有返回值类型,连void都没有 * c:没有具体的返回值return; * 构造方法的重载 * 重 ...
- 【java】java.lang.Math:public static long round(double a)和public static int round(float a)
package math; public class TestMath_round { public static void main(String[] args) { System.out.prin ...
- 请大神留言:使用static方法和从Spring IOC 容器里面取出的方法有什么区别????
类的静态方法,不用new出对象,因为它在类的初始化阶段加载到jvm内存的. 而spring容器,是在启动服务的时候,new出容器所管理的对象. 本质区别就是一个在堆中产生了对象,一个没产生对象只在方法 ...
- 接口中字段的修饰符:public static final(默认不写) 接口中方法的修饰符:public abstract(默认不写)abstract只能修饰类和方法 不能修饰字段
abstract只能修饰类和方法 不能修饰字段
- Java关键字:static
通常,当创建类时,就是在描述那个类的外观和行为.只有用new创建类的对象时,才分配数据存储空间,方法才能被调用.但往往我们会有下面两种需求: 1.我想要这样一个存储空间:不管创建多少对象,无论是不创建 ...
- Position属性四个值:static、fixed、absolute和relative的区别和用法
Position属性四个值:static.fixed.absolute和relative的区别和用法 在用CSS+DIV进行布局的时候,一直对position的四个属性值relative,absolu ...
随机推荐
- winform 制作圆形图片框
public partial class CirclePictureBox : PictureBox { public CirclePictureBox() { Circle = true; Init ...
- LR11安装注意事项
一.安装Microsoft Visual c++2005 sp1运行时组件,就会提示命令行选项语法错误,键入“命令/?”可获取帮肋信息 解决方法: 进入LoadRunner11下载\loadrunne ...
- BestCoder Round #89
过了这么久才来写-- BC的后两道题好难--(第二道题也不怎么简单--) 1001 Fxx and string 正着倒着枚举一次就ok #include<iostream> #inclu ...
- for循环---几种写法
最常见的写法 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...
- 《JS权威指南学习总结--8.8.4 记忆函数》
内容要点: 可以将上次的计算结果缓存起来.在函数式编程当中,这中缓存技巧叫做 "记忆". 需要注意的是,记忆只是一种编程技巧,本质上是牺牲算法的空间复杂度以换取更优的时间复杂度 ...
- ubuntu通过tnvm安装Nodejs
第一步,先安装tvm tnvm(Taobao Node Version Manager)淘宝Node版本管理器 安装: 直接输入 wget -O- https://raw.githubusercont ...
- ggplot2 geom相关设置—点重合处理(jitter)
在R中散点图的时候会经常出现,点重合比较严重的现象,这对我们寻找数据规律或者观察数据有很大的干扰. 所幸的是R中,可以用geom_jitter()函数来调整,消除点的重合. geom_jitter(m ...
- ajax格式,需要指定交互的data类型
思路 先打印所有返回值 console.log(d); {''status'':999} 再查看返回值,能否转换为json dataType:'json', //大小写敏感. datatype ...
- 1、JavaScript基础
1.思维导图 2.创建html页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- Infix expression 计算 without '(' and ')'
#include<iostream> #include<stack> #include<string> using namespace std; char comp ...