首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP静态(static)方法和静态(static)变量使用介绍

php,访问方法/变量有两种方法: 1. 创建对象object = new Class(),然后使用”->”调用: 2....直接调用方法/变量:class::attribute/function,无论是静态/非静态都可以。但是有前提条件: A. 如果是变量,需要该变量可访问。 B....如果是方法,除了该方法可访问外,还需要满足: b1) 如果是静态方法,没有特殊条件; b2) 如果是非静态方法,需要该方法没有使用$this,即没有调用非静态变量/方法,当然,调用静态变量/方法没有问题...然后奇怪地方就出来了,既然2和3都一样,那静态方法/变量存在还有什么意义呢? 差异还是显然存在,如下: 1....静态方法 静态方法可以直接使用class::… 来调用,而非静态方法需要满足一定限制条件才能使用class::.. 方法调用,如之前所述

4.1K10
您找到你想要的搜索结果了吗?
是的
没有找到

静态静态方法、静态变量区别

引言 一直疑惑静态静态方法、静态变量内存驻用情况。今天就写了个Demo来深入八一八他们区别和注意点。...为了演示方便,方法名和变量名采取中文命名 先上结论 静态变量 只在初始化时加载一次 静态方法和静态方法语法糖 实时加载里面的内容 只读属性 实时加载里面的内容 附有初始值属性语法糖 只在初始化时加载一次...(应该是set里面处理,而不是get里面处理静态有参方法 实时加载里面的内容 无图我还说什么?...请看代码 代码 先看测试Demo 1.非静态 静态方法 /// /// 非静态 /// public class TestCommonService...{ /// /// 静态变量 /// public static string 静态变量

1.5K10

详解java静态方法有哪些_java静态变量

定义: 在中使用static修饰静态方法会随着定义而被分配和装载入内存;而非静态方法属于对象具体实例,只有在对象创建时在对象内存才有这个方法代码段。...原因: 因为静态方法和静态数据成员会随着定义而被分配和装载入内存,而非静态方法和非静态数据成员只有在对象创建时在对象内存才有这个方法代码段。...第一次使用时候)执行一次,往往用来初始化静态变量。...return t; } } } 总结: (1)static修饰静态方法会随着定义而被分配和装载入内存,编译器只为整个创建了一个静态变量副本...(2)静态不能引用非静态这一特性,是由于静态会随着定义而被分配和装载入内存这一关键点决定;如果静态引用了非静态,根本无法从内存中找到非静态代码段,势必会出错,这种做法是Java虚拟机决不允许

1.4K10

Java静态变量(变量)、实例变量、局部变量和成员变量

学习Java过程,一开始很容易被这些各种变量绕晕,这篇博客主要介绍了这几种变量之间关系和区别。...//成员变量静态变量(变量) public static String level = "SSS"; //成员变量静态变量(变量) public int getAge...成员变量:作用范围是整个,相当于C全局变量,定义在方法体和语句块之外,一般定义在声明之下;成员变量包括实例变量静态变量(变量); 实例变量:独立于与方法之外变量,无static修饰,...声明在一个,但在方法、构造方法和语句块之外,数值型变量默认值为0,布尔型默认值为false,引用类型默认值为null; 静态变量(变量):独立于方法之外变量,用static修饰,默认值与实例变量相似...,一个只有一份,属于对象共有,存储在静态存储区,经常被声明为常量,调用一般是名.静态变量名,也可以用对象名.静态变量名调用; 局部变量方法变量,访问修饰符不能用于局部变量,声明在方法、构造方法或语句块

2.1K20

C++静态变量静态方法使用介绍

转自:https://www.cnblogs.com/sixue/p/3997324.html 最近一直看c++相关项目,但总是会被c++静态成员变量静态成员函数理解感觉很是模糊...,不明白为什么要是用静态成员变量.于是在网上搜集了一些资料,自己再稍微总结下。...二:面向对象static关键字 1.静态数据成员 在数据成员声明前加上static,该成员是静态数据成员....4、引用静态数据成员时,采用如下格式:    :: //静态变量使用方式   如果静态数据成员访问权限允许的话(即public成员),可在程序,按上述格式来引用静态数据成员...在静态成员函数实现不能直接引用说明静态成员,可以引用说明静态成员(这点非常重要)。如果静态成员函数要引用非静态成员时,可通过对象来引用。

1.1K20

PHPstatic静态变量使用方法详解

php变量作用范围另一个重要特性就是静态变量(static 变量)。静态变量仅在局部函数域中存在且只被初始化一次,当程序执行离开此作用域时,其值不会消失,会使用上次执行结果。 <?...要写一个不会丢失本次计数值计数函数,要将变量 w3sky 定义为静态(static): 如下: 本函数每调用Test()都会输出 $w3sky 值并加一。 静态变量也提供了一种处理递归函数方法。递归函数是一种自己调用自己方法。...以下这个简单函数递归计数到 10,使用静态变量 $count 来判断何时停止: 静态变量与递归函数例子: 注: 静态变量可以按照上面的例子声明。如果在声明中用表达式结果对其赋值会导致解析错误。 声明静态变量例子: <?

3.4K20

PHP变量

PHP变量是用于储存信息容器,我们命令服务器去干活时候,往往需要产生一些数据,需要临时性存放起来,方便取用赋值方法与数学代数相类似 1、在PHP变量是用于储存信息容器,类似于数学集合...) 当我们放进去一个苹果后,再放进榴莲时候,苹果就被替换掉,再放入香蕉,那么榴莲就被替换了 变量是用于存储信息”容器 我们在PHP变量也是如此。...> PHP是一门弱类型语言 不必向PHP声明该变量数据类型,PHP会根据变量值,自动把变量转换为正确数据类型 PHP变量作用域 变量作用域是脚本变量可被引用,使用部门 PHP有四种不同变量作用域...除了函数外,全局变量可以被脚本任何部分访问,要在一个函数访问一个全局变量,需要使用 global关键字。 在 PHP函数内部声明变量是局部变量,仅能在函数内部访问 <?...在函数内调用函数外定义全局变量,我们需要在函数变量前加上 global关键字 <?

24710

静态静态方法

C#可以包含两种方法:静态方法和非静态方法。   使用了static 修饰符方法为静态方法,反之荝是非静态方法。   ...1.static方法是一个成園方法,属于整个,即不用創建任何对象也可以直接调用!   static内部只能出现static变量和其他static方法!...洏且static方法还不能使用this....等关键字..因为它湜属于整个!   2.静态方法效率上要比实例化高,静态方法缺点是不洎动进垳销毁,洏实例化则可以做销毁。   ...,所以悱靜态成员可以直接访问静态成员....公用处理函数,使用静态方法应该没有问趧..牵涉到数据共享,静忲变量函数要多考虑...静态变量要小心使用..

1.4K20

PHP使用“单例”静态变量提高效率

再多次需要使用一个变量时候,我们可以使用静态变量来保存这个值,避免多次调用,多次计算导致效率下降! <?...php class TestExplame{ public static $myName; public static function setMyName(){ self::$myName...getMyNumberName(); $count++; } return $nameArray; } } //如果我们使用如下方式调用,将会产生一大堆效率问题 require_once "test.php...以上主要方法是添加了一个getstaticNumberName方法,主要作用就是判断这个频繁使用变量是否存在,如果存在则直接返回,就避免多次去计算该结果(该结果是保持不变,如果有变化这样是行不通)...因此在编程时候,大家应该多考虑一下效率问题!像这种频繁使用变量,同时计算起来又比较耗时运算,我们可以尝试使用静态变量保存,以便二次使用。

66830

JVM运行时数据区,静态变量,成员变量,变量

堆:存放对象实例和数组 方法区用于存储已被虚拟机加载信息、常量、静态变量、即时编译器编译后代码和编译加载数据等。运行时常量池是方法区一部分,用于存放编译器生成各种字面量和符号引用。...局部变量和成员变量区别 ①声明位置 局部变量:方法体们,形参,代码块们 成员变量中方法外 - 变量:有static修饰 - 实例变量:没有static修饰 ②可用修饰符 局部变量...④作用域 局部变量:从声明处开始,到所属]结束口实例变量:在当前“this.”(有时this.可以缺省),在其他“对象名.”访问 变量:在当前名.”...(有时名.可以省略),在其他名.”...,随着卸载而消亡,该类所有对象变量是共享

98820

PHP

PHP PHPprivate、public、protected区别详解 public表示全局,内部和外部子类都可以访问 private表示私有的,只有本类内部可以使用 protected...PHP new:实例化对象 使用属性和方法不像使用变量和函数那样简单,首先要对进行实例化 实例化对象 将实例化成对象非常容易,只需要使用new关键字并在后面加上一个和类同名方法(*...,如果类没有定义构造函数,PHP会自动创建一个不带参数默认构造函数 创建一个并将其实例化 <?...,只能通过对象引用来访问对象成员 使用 -> 来完成对象成员访问 变量名 = new (参数); //实例化一个 变量名 -> 成员属性 = 值; //为成员属性赋值 变量名 ->...广义地讲,对象包含了变量,即变量也可以称为一种对象,狭义地讲,将对象看作实例,对象是某个对象。

5910

PHP

注意: 在继承父子类,默认子类是不会实现父构造函数和析构函数,要执行父构造函数和析构函数,我们可以使用parent关键字在子类构造函数和析构函数体显式调用parent::__construct...2、子类不能重新定义父static关键字修饰变量属性或者方法,除非你将它们定义为static成员。...3、static方法或者变量,$this 变量是不可用,如果你要使用同一其他定义为static变量或者方法,可以使用self::(变量名|方法名)来访问static成员。...> 正确输出结果: foo foo foo foo foo 六、作用域分辨运算符(::) 在没有声明任何实例情况下使用::来访问函数或者基函数和变量。...PHP5引入了abstract和方法概念。

6.7K20

【小家java】静态代码块、构造代码块、静态变量、成员变量执行顺序和继承逻辑

和子类变量是同时存在,即使是同名。子类中看到是子类变量,父中看到是父变量,它们互相隐藏,而同名方法则是实实在在覆盖(重写),属性不存在重写哟。...因为false指明了装载过程,不进行初始化。不初始化则不会执行static块。...我觉得脑子里应该浮现出一个这样知识点: Java赋值顺序: 1、父静态变量赋值 2、自身静态变量赋值 3、父成员变量赋值和父块赋值 4、父构造函数赋值 5、自身成员变量赋值和自身块赋值...只有在准备阶段和初始化阶段才会涉及变量初始化和赋值,因此只针对这两个阶段进行分析; 准备阶段:需要做是为变量(static变量)分配内存并设置默认值(注意此处都是先给默认值),因此类变量st...构造器:编译器收集所有静态语句块和变量赋值语句,按语句在源码顺序合并生成构造器 因此现在执行:st = new StaticTest().此时我们发现,就会进行对象初始化了(看到没,这个时候

1.4K20

Java初始化过程:(静态成员变量静态代码块,普通成员变量,代码块初始化顺序)

初始化过程是这样: 1.首先,初始化父静态成员变量静态代码块,按照在程序中出现顺序初始化; 2.然后,初始化子类静态成员变量静态代码块,按照在程序中出现顺序初始化; 3.其次,...初始化父普通成员变量和代码块,在执行父构造方法; 4.最后,初始化子类普通成员变量和代码块,在执行子类构造方法; 加载顺序: 父静态成员变量静态块>子类静态成员变量静态块>...父普通成员变量、非静态块>父构造函数>子类 普通成员变量、非静态块>子类构造函数 静态代码块:随着加载而执行,而且只执行一次 非静态代码块:每创建一个对象,就执行一次非静态代码块 关于各个成员简介

29030
领券