首页
学习
活动
专区
工具
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 , 该操作不是必须的 , 不替换也不会报错 // 在应用中可能需要操作获取应用的相关信息 , 如果希望获取准确的信息

23120

PHP中this,self,parent的区别

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

2.3K20
  • php中self与static的区别

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

    57520

    ​再谈PHP中的self与static

    再谈PHP中的self与static 之前的文章中有介绍过self、static和parent的传递问题。今天,通过一个小实验,我们来看看self和static操作变量的问题。...通过这个简单的例子,我们可以看出两点: self写在哪个类里面,它固定指向的就是当前的这个类 static就是哪个对象调用它,它指向的就是这个调用者 从代码中我们可以看出,B类没有重写selfName(...)方法,所以B类调用selfName()时调用的是父类A的selfName()方法,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

    47720

    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 中提供了一些函数,在某些时刻自动调用,处理一些逻辑,执行时间不同

    55030

    后期静态绑定在PHP中的使用

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

    71210

    PHP 面向对象

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

    1.5K70

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

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

    1.8K50

    PHP类与对象

    = new $className();$obj->foo(); // 方式三 PHP8function getClassName(){ return 'Test';}$obj = new (...getClassName());$obj = new (Test::class); 在类内部可以使用new self、new parent创建新对象 将对象实例赋值给一个新变量时,新变量访问的是同一实例...()的方式已经废弃,并在PHP8中移除构造函数和析构函数构造器属性提升 PHP 8 当构造器参数带有访问控制时,PHP会同时将它们当作对象属性和构造器参数,并赋值到属性范围解析操作符...中可以定义属性、方法、抽象方法、静态方法、静态属性匿名类重载PHP中的重载是指在访问未定义的属性、方法时,会调用特定的魔术方法属性重载:__set()__get()__isset()__unset()方法重载...:__call()__callStatic()遍历对象对象的可见属性都将被遍历魔术方法后期静态绑定self::代表的是当前方法所在的类的实例static::限定调用的方法未指定类中的方法<?

    1.6K10

    静态成员在PHP中是怎么继承的?

    静态成员在PHP中是怎么继承的? 静态成员,也就是用static修饰的变量或者方法,如果搞不清楚它们实现的原理,就很容易会出现一些错误。这次我们来研究的是在继承中静态成员的调用情况。...; } $b = new B; $b->show(); 之前的文章中,我们有说过self的问题。self仅仅只是指向当前这个类。注意,是类,不是实例化后的对象。...好了,有了这个基础之后,我们知道静态成员是和类有关的,和对象无关。那么以下的代码也就更容易理解了。.... ';', PHP_EOL; 直接读代码能推导出输出的结果吗?其实只要掌握了上文中所说的原则,这段代码就很容易理解了。$c是静态变量,$d是普通变量。...详情可以查看之前的文章PHP中的Static 测试代码:https://github.com/zhangyue0503/dev-blog/blob/master/php/201912/source/%E9%

    1.4K20
    领券