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

self :: vs className :: PHP中的静态className metods

在PHP中,self::和className::都是用于访问静态类方法的关键字。

  1. self:::
    • 概念:self::是一个特殊的关键字,用于在类内部引用当前类的静态方法或属性。
    • 分类:self::是PHP中的伪变量,用于访问当前类的静态成员。
    • 优势:使用self::可以确保访问的是当前类的静态成员,而不会受到继承关系的影响。
    • 应用场景:self::常用于在类的静态方法中调用其他静态方法或访问静态属性。
    • 腾讯云相关产品和产品介绍链接地址:暂无推荐的腾讯云相关产品。
  2. className:::
    • 概念:className::是用于在类外部引用类的静态方法或属性的语法。
    • 分类:className::是PHP中的伪变量,用于访问类的静态成员。
    • 优势:使用className::可以在类外部直接访问类的静态成员,无需实例化对象。
    • 应用场景:className::常用于在类外部调用类的静态方法或访问静态属性。
    • 腾讯云相关产品和产品介绍链接地址:暂无推荐的腾讯云相关产品。

总结:

在PHP中,self::和className::都是用于访问静态类方法的关键字。self::用于在类内部引用当前类的静态成员,而className::用于在类外部引用类的静态成员。它们的应用场景主要是在类的静态方法中调用其他静态方法或访问静态属性。腾讯云暂无相关产品与这两个关键字直接相关。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Android 安全】DEX 加密 ( Application 替换 | 修改 LoadedApk mApplicationInfo 成员 className 名称 )

文章目录 一、 当前 Application 替换进度 二、 修改 LoadedApk ApplicationInfo mApplicationInfo 成员 className 名称 一、 当前...获取 Application 名称时候 , 获取还是代理 Application 名称 , 这里只能影响到这个名称 , 最好进行修改 ; 二、 修改 LoadedApk ApplicationInfo...mApplicationInfo 成员 className 名称 ---- 在上一篇博客 【Android 安全】DEX 加密 ( Application 替换 | 替换 LoadedApk ...className 字段值 ; // 设置 ApplicationInfo className 字段值 mApplicationInfo.className...下一步操作替换替换 ApplicationInfo className , 该操作不是必须 , 不替换也不会报错 // 在应用可能需要操作获取应用相关信息 , 如果希望获取准确信息

20720

PHPthis,self,parent区别

{一}PHPthis,self,parent区别之一this篇 面向对象编程(OOP,Object OrientedProgramming)现已经成为编程人员一项基本技能。...php classname //建立了一个名为name类 { private$name; //定义属性,私有 //定义构造函数,用于初始化赋值...PHPthis,self,parent区别之二self篇 此篇我们就self用法进行讲解 首先我们要明确一点,self是指向类本身,也就是self是不指向任何已经实例化对象,一般self使用来指向类静态变量...{三}PHPthis,self,parent区别之三parent篇 此篇我们就parent用法进行讲解。...总结:this是指向对象实例一个指针,在实例化时候来确定指向;self是对类本身一个引用,一般用来指向类静态变量;parent是对父类引用,一般使用parent来调用父类构造函数。

2.2K20

phpself与static区别

phpself与static区别 通过一些示例,我们可以很容易看出self和static区别。假定我们有class Car – 它有两个方法,model和getModel。...modelself::getModel(),调用自然也就是class CargetModel方法。 这个行为似乎不是我们想要,它不符合面向对象设计原则。如何解决呢?...static关键字和延迟静态绑定(late static binding) 在PHP5.3,加入了一个新特性,叫做延迟静态绑定。它可以帮我们实现多态,解决上面的问题。...php 5.3以下版本无法使用延迟静态绑定 注意,php 5.3之前版本无法使用延迟静态绑定。如果尝试在php 5.3以下版本运行上面的例子,将会报错。...phpself和static 现在我们将例子self用static替换,可以看到,两者区别在于:self引用是当前类(current class)而static允许函数调用在运行时绑定调用类

54420

​再谈PHPself与static

再谈PHPself与static 之前文章中有介绍过self、static和parent传递问题。今天,通过一个小实验,我们来看看self和static操作变量问题。...通过这个简单例子,我们可以看出两点: self写在哪个类里面,它固定指向就是当前这个类 static就是哪个对象调用它,它指向就是这个调用者 从代码我们可以看出,B类没有重写selfName(...)方法,所以B类调用selfName()时调用是父类AselfName()方法,self在这个方法中指向是A类。...而C类重写了父类selfName()方法,在调用C类selfName()时,这里面的self指向便是C类自己了。...B8%AD%E7%9A%84self%E4%B8%8Estatic.php 参考文档:https://www.cnblogs.com/mr-amazing/p/5953227.htmlhttps://www.php.net

46720

PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】

分享给大家供大家参考,具体如下: 范围解析操作符 (::) 范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员,类常量,还可以用于覆盖类属性和方法...自 PHP 5.3.0 起,可以通过变量来引用类,该变量值不能是关键字(如 self,parent 和 static)。...把 Paamayim Nekudotayim 选作双冒号操作符名字似乎有些奇怪。然而,这是 Zend 开发小组在写 Zend Engine 0.5(被用于 PHP 3 )时所作出决定。...事实上这个词在希伯莱文就是双冒号意思。 在类外部使用 :: self,parent 和 static 这三个特殊关键字是用于在类定义内部对其属性或方法进行访问。 <?...::CONST_VALUE; // 自 PHP 5.3.0 起 echo MyClass::CONST_VALUE; 在类定义内部使用 :: 当一个子类覆盖其父类方法时,PHP 不会调用父类已被覆盖方法

79110

PHPabstract(抽象)、final(最终)和static(静态)原理与用法详解

本文实例讲述了PHPabstract(抽象)、final(最终)和static(静态)原理与用法。分享给大家供大家参考,具体如下: abstract(抽象) PHP 5 支持抽象类和抽象方法。...为了兼容 PHP 4,如果没有指定访问控制,属性和方法默认为公有。 由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法不可用。 静态属性不可以由对象通过 – 操作符来访问。...但该变量值不能为关键字 self,parent 或 static。...总结: 静态方法无需实例化,可直接访问; 类实例化对象无法访问类静态属性,但是可以访问静态方法; 伪变量 $this 在静态方法不可用; 静态属性不可以由对象通过 – 操作符来访问; 用静态方式调用一个非静态方法会导致一个...但该变量值不能为关键字 self,parent 或 static。 <?

52020

PHP7-2: 面向对象开发

PHP 是面向对象语言, 和JAVA 挺像, 面向对象思想都是一样, 继承 接口 抽象类 静态属性 …… 语言都是互通,语言只是实现工具,学好面向对象对以后设计接口有很大帮助,那么我们开始吧...PHP 面向对象 静态属性 static // 使用场景: 类一些公用属性和方法,值有可能改变 // 如何访问 静态属性呢 // 通过 self::方法 或者 属性 , 就可以访问到类静态属性...echo '他是'.self::$className; #他是大三老学长 } } const 类常量定义使用 // 使用场景: 值不会变化时,使用 // 如何访问const 常量...function learn(); public function getClassName(){ echo '他是'.self::$className; } }...Trait 使用情况 Trait 可以使用 abstract 方法 Trati 可以使用 静态方法 魔术方法 所谓魔术方法,它就是PHP 中提供了一些函数,在某些时刻自动调用,处理一些逻辑,执行时间不同

52330

php self,this区别和操作方法实例分析

本文实例讲述了php self,this区别和操作方法。...利用OOP思想进行PHP高级编程,对于提高PHP编程能力和规划web开发构架都是很有意义。 这里我主要谈是this,self关键字之间区别。从字面上来理解,分别是指这、自己。...,现在网上大多数资料要么就是按照手册抄过来很官方一些话,要么就是那些千篇一律文章,确实有些不好理解,所以只能自己动手来熟悉啦 一. self 1.self可以访问本类静态属性和静态方法,可以访问父类静态属性和静态方法...} } $str = new self_test(); echo $str- tank(); 页面输出: tancy 二.this 1.this可以调用本类方法和属性,也可以调用父类可以调方法和属性...是引用静态类名,而$this是引用非静态实例名。

47121

PHP=>->和::用法

PHP=>和->以及::符号用法 ->用法 插入式解引用操作符 用于类里,访问类里函数或对象,就是在类里面定义了一个函数,使用->可以调用这个类里面的函数 <?...,即作用域限定操作符,可以访问静态,const,类重写属性和方法 用变量在类定义外部访问 class fruit{ const CONST_VALUE = 'fruit color'; } $classname...> 面向对象self和parent区别 <?...demo() { $str = '自己<em>的</em><em>静态</em>属性:'.self::$name; $str .= '父类静态属性:'.parent::$name;...self::调用是自己类,parent::则是调用父类 phpextends 在php,extends关键字用于定义类继承,语法为 class 子类 extends 父类{} 通过该关键字可以实现单继承

14610

PHP 面向对象程序设计之类属性与类常量实现方法分析

属性变量可以初始化,但是初始化值必须是常数,这里常数是指 PHP 脚本在编译阶段时就可以得到其值,而不依赖于运行时信息才能求值。...静态属性则是用 ::(双冒号):self::property 来访问。更多静态属性与非静态属性区别参见 Static 关键字。 当一个方法在类定义内部被调用时,有一个可用伪变量 this。...在定义和使用常量时候不需要使用 $ 符号。 常量值必须是一个定值,不能是变量,类属性,数学运算结果或函数调用。 接口(interface)也可以定义常量。更多示例见文档接口部分。...自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量值不能为关键字(如 self,parent 或 static)。 定义和使用一个类常量 <?..."\n"; $classname = "MyClass"; echo $classname::constant .

1.2K10

PHP 面向对象

你可以使用 ClassName::class 获取一个字符串,包含了类 ClassName 完全限定名称。...$this self parent static 当一个方法在类定义内部被调用时,有一个可用伪变量 $this。 使用 self:: 来访问静态方法和静态变量。...使用 static:: 来访问静态方法和静态变量。 使用 parent:: 来访问父类方法和静态属性。 在类定义内部,可以用 new self 和 new parent 创建新对象。...属性、方法、类常量 属性 变量可以初始化,但是初始化值必须是常数,这里常数是指 PHP 脚本在编译阶段时就可以得到其值,而不依赖于运行时信息才能求值。...抽象类 abstract 抽象类抽象方法不能有具体实现。 抽象类普通方法有具体实现。 抽象类不能被实例化。用于被其他类继承,子类必须定义抽象类中所有的抽象方法。

1.5K70

后期静态绑定在PHP使用

后期静态绑定在PHP使用 什么叫后期静态绑定呢?其实我们在之前文章PHPstatic已经说过这个东西了。今天我们还是再次深入理解一下这个概念。...我们使用了self关键字,当使用B类调用test()静态方法时,self指向是A类who()方法,因此,输出是A。...别激动,这是普通静态绑定。self关键字调用内容取决于它定义时所在类。也就是说不管怎么继承,用哪个子类来调用test()方法,self关键字都会调用是A类who()方法。 而后期静态绑定呢?...普通静态调用可不是这样,但是现实我们又有这样需求,就像实例化对象调用方式一样来调用静态属性方法,这时,我们就可以使用static关键字来实现后期静态绑定。...官方文档定义如下: 当进行静态方法调用时,该类名即为明确指定那个(通常在 :: 运算符左侧部分);当进行非静态方法调用时,即为该对象所属类。 该功能从语言内部角度考虑被命名为“后期静态绑定”。

69310

php面向对象static静态属性和静态方法调用

这篇文章主要介绍了php面向对象static静态属性和静态方法调用,实例分析了static静态属性和静态方法原理与调用技巧,需要朋友可以参考下 本文实例讲述了phpstatic静态属性和静态方法调用...具体如下: 这里分析了php面向对象static静态属性和静态方法调用。关于它们调用(能不能调用,怎么样调用),需要弄明白了他们在内存存放位置,这样就非常容易理解了。...静态属性、方法(包括静态与非静态)在内存,只有一个位置(而非静态属性,有多少实例化对象,就有多少个属性)。 name //因为静态属性内存位置不在对象里 Human::say();//错。say()方法有$this时出错;没有$this时能出结果 //但php5.4以上会提示 ?...因为非静态属性需要实例化后,存放在对象里; (4)、静态方法可以调用非静态方法,使用 self 关键词。php里,一个方法被self:: 后,它就自动转变为静态方法;

1.8K50
领券