广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP中什么是静态以及静态属性和静态方法是什么意思
  • 327
分享到

PHP中什么是静态以及静态属性和静态方法是什么意思

2023-06-20 15:06:26 327人浏览 薄情痞子
摘要

本篇内容主要讲解“PHP中什么是静态以及静态属性和静态方法是什么意思”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php中什么是静态以及静态属性和静态方法是什么意思”吧!静态是什么?我们之前讲到

本篇内容主要讲解“PHP中什么是静态以及静态属性和静态方法是什么意思”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习php中什么是静态以及静态属性和静态方法是什么意思”吧!

静态是什么?

我们之前讲到, 调用成员变量和方法, 都需要用到对象. 但如果我们不想实例化, 直接访问变量和方法呢? 这就用到了静态static功能.

在定义变量和方法的时候, 在前面加上static关键词, 就转化为了静态, 就可以通过类名::双引号直接进行访问.

我们继续将上面的例子改写为静态变量和静态方法:

class Classname          //定义一个类, 类名不区分大小写{static public $name;      //定义静态成员变量;static public $height=180;    //初始化赋值static public $weight, $nationality; //可以一个语句定义多个变量static protected $age;static public function player($name,$height, $weight, $age, $sex){                    //定义静态成员方法, 以及方法形参    self::$name=$name;                 //为成员变量赋值, 使用了代词self::    self::$weight=$weight;    self::$height=$height;    if (self::$height<185 && self::$weight<=85){        return self::$name.',符合要求';    }else{        return self::$name.',不太行';    }}}echo Classname::$height;              //180, 通过类名::访问静态变量echo Classname::player('xiaoming',180,80,22, 'Male');  //通过类名::访问静态方法;

上面的例子可以注意到, 我将所有的$this都换成了self. 因为$this指代的是调用对象, 而self指代的方法所在的类本身. 静态方法可以通过类名::直接调用, 这里没有对象, \$this指代的就为空, 系统就会报错. 所以静态方法内调用变量, 不能通过$this.

注意self::后面的变量要有$符号.

静态的本质

不要小瞧这个static, 加上了它, 其实不只是可以直接调用这么简单, 成员变量和方法的意义发生了本质上的变化:

在静态方法中只能调用静态变量, 而不能调用普通变量, 普通方法则可以调用静态变量. 这是由静态方法的属性决定的, 因为普通的成员变量是与"对象"绑定的, 而静态变量是与"类"绑定的.

我再详细解释一下静态变量和普通变量的区别:

  • 普通的成员变量与对象绑定, 不同的对象都有一套属于自己的成员变量. 不同对象的成员变量都有各自的赋值, 虽然有可能相同, 但你的就是你的.

  • 静态变量是和类绑定的. 如果静态变量改变了, 那么这个类所有的对象中, 这个值都会发生改变.

  • 静态变量也可以通过对象::来进行访问, 但其实同一个类的对象访问的其实都是同一个静态变量值. 可以理解为静态变量是整个类共享的, 包括它的子类.

  • 所以即便其中一个对象被销毁了, 静态变量值还会保留.

  • 子类也可以重写父类的静态成员变量, 但父类的静态变量依然存在, 这两个静态成员变量是独立的. 会根据调用的类名分别进行访问.

我们举个例子:

class Shouji{    static public $test;           //定义一个静态变量    static function test5()        //定义静态方法来操作并输出静态变量    {        self::$test++;        echo self::$test;    }}class Shouji2 extends  Shouji          //定义一个子类{    static function test5()           //定义子类的静态方法    {        self::$test++;                 //访问并操作父类的静态变量        echo self::$test;    }}$shouji1=new Shouji;               //新建父类对象$shouji1->test5();     //1, 通过对象调用静态方法$shouji2=new Shouji;   //新建另一个父类对象$shouji2->test5();    //2,  在前一次操作基础上继续+1$shouji3=new Shouji2;    //新建子类对象$shouji3->test5();    //3, 调用子类同名静态方法, 继续+1echo Shouji::$test;    //3, 通过父类::直接访问静态成员变量echo $shouji1::$test;   //3, 通过对象名::可以直接访问静态成员变量

通过上面这个例子, 我们还能有以下几点总结:

  • 子类可以重写父类的静态方法.

  • 方法内访问静态变量需要用::符号. 不能用$this;

  • 静态方法和静态变量都会被子类继承.

  • 静态变量不能由->访问, 而是由 ::(双冒号)进行访问

  • 对象可以通过对象名->来直接调用静态成员方法, 这个和调用普通方法是一样的.

到此,相信大家对“PHP中什么是静态以及静态属性和静态方法是什么意思”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: PHP中什么是静态以及静态属性和静态方法是什么意思

本文链接: https://www.lsjlt.com/news/297734.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP中什么是静态以及静态属性和静态方法是什么意思
    本篇内容主要讲解“PHP中什么是静态以及静态属性和静态方法是什么意思”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP中什么是静态以及静态属性和静态方法是什么意思”吧!静态是什么我们之前讲到,...
    99+
    2023-06-20
  • php中的静态属性和静态方法是什么
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑在 PHP 中,通过 static 关键字修饰的成员属性和成员方法被称为静态属性和静态方法,这里可以将它们统称为静态成员,类中的静态成员与类中的一般成员不同,静态成员不...
    99+
    2021-03-06
    php 静态属性 静态方法
  • java中什么是静态方法和非静态方法
    本篇文章为大家展示了java中什么是静态方法和非静态方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基于Java的...
    99+
    2023-06-14
  • php中的静态属性和静态方法怎么用
    这篇文章主要介绍“php中的静态属性和静态方法怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php中的静态属性和静态方法怎么用”文章能帮助大家解决问题。在php中,通过static关键字修饰的...
    99+
    2023-06-26
  • php页面静态化是什么意思
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑PHP 页面静态化的概念PHP静态化分为:纯静态化 和 伪静态化;纯静态化:是把PHP生成的动态页面保存成静态的html文件,用户访问该静态页面,而不是用户每一次访问都...
    99+
    2019-07-31
    php 页面静态化
  • java中的静态属性与静态方法可以被继承么
    结论:java中静态属性和静态方法可以被继承,但是没有被重写(overwrite),而是被隐藏。原因分析:静态方法和属性是属于类的,调用的时候可以直接通过类名.方法名完成,不需要继承机制便可以调用。如果子类里面定义了静态方法和属性,那么这时...
    99+
    2016-02-05
    java 静态属性 静态方法 继承
  • 什么是C#静态方法
    本篇内容介绍了“什么是C#静态方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C#静态方法是什么呢?在我们编程开发的应用中C#静态方法可以...
    99+
    2023-06-17
  • html静态化指的是什么意思
    这篇文章主要介绍html静态化指的是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! html静态化是指网页的代码都在页面中,不需要执行asp、ph...
    99+
    2022-10-19
  • php的static静态方法是什么
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。PHP static静态详解PHP 类属性和方法都需要在类实例化后才能调用(常量属性除外),但是,PHP 还提供了静态属性和静态方法,所谓「静态」指的是无需对类进行实...
    99+
    2022-10-31
  • java中的静态方法是什么
    本篇内容主要讲解“java中的静态方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java中的静态方法是什么”吧!在java中,静态方法指被static修饰的成员方法。静态方法不需要通过...
    99+
    2023-06-20
  • php中什么叫静态方法
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑在 PHP 中,通过 static 关键字修饰的成员属性和成员方法被称为静态属性和静态方法,这里可以将它们统称为静态成员,类中的静态成员与类中的一般成员不同,静态成员不...
    99+
    2018-06-15
    php 静态方法
  • dede建站的伪静态是什么意思
    dede建站的伪静态是通过对动态网页重写URL的方式来伪装动态网页的参数,如果设置伪静态可以更好迎合搜索引擎的抓取,又能动态更新网站内容,实现了高效运维管理,并且缩短了url长度,隐藏了文件的实际路径提高了安全性,也易于用户记忆和输入,但使...
    99+
    2022-10-08
  • php方法中的静态变量是什么
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑php方法中的静态变量是什么?PHP中的静态变量及static静态变量使用详解静态变量只存在于函数作用域内,也就是说,静态变量只存活在栈中。一般的函数内变量在函数结束后会...
    99+
    2017-05-04
    php 静态变量
  • PHP中静态方法的特点是什么
    小编给大家分享一下PHP中静态方法的特点是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PHP中静态方法的特点是:1、静态方法使用static关键字修饰;2、...
    99+
    2023-06-27
  • C#中静态方法与非静态方法有什么区别
    C#中静态方法与非静态方法有什么区别,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。C#静态方法与非静态方法比较一、C#静态成员:①静态成员属于类所有,非静态成员属于类的实例...
    99+
    2023-06-17
  • php中什么是静态变量
    这篇文章主要介绍了php中什么是静态变量,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是静态变量:在函数内部使用static声明得变量就是静态变量;静态变量的特征:静态变...
    99+
    2023-06-15
  • C#中静态类和静态类成员的区别是什么
    C#中静态类和静态类成员的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。C#静态类和静态类成员用于创建无需创建类的实例就能够访问的数据和函数。静态类成员可用于分离独立...
    99+
    2023-06-17
  • php静态化指的是什么
    本篇内容主要讲解“php静态化指的是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php静态化指的是什么”吧!PHP静态化就是使网站生成页面以静态HTML的形式展现在访客面前;PHP静态化分...
    99+
    2023-07-04
  • java中什么是静态的对象和方法
    什么是静态变量Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。使用 static 可以修饰变量、方法和代码块...
    99+
    2016-04-17
    java入门 java 静态 对象 方法
  • C#中静态方法的概念是什么
    这期内容当中小编将会给大家带来有关C#中静态方法的概念是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C#静态方法是一种特殊的成员方法,它不属于类的某一个具体的实例。非静态方法可以访问类中的任何成员,...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作