博主信息
笑颜常开的博客
博文
61
粉丝
0
评论
0
访问量
28267
积分:0
P豆:211.5

静态成员的定义与访问

2019年03月27日 16:56:40阅读数:462博客 / 笑颜常开的博客/ PHP开发

<?php
/*
* 之前,将类作为对象的模板, 访问类中的成员,必须先将类实例化,通过对象访问
* 面向对象编程,实际上操作都是对象,而类,仅做为生成对象的代码模板而存在
* 而实际情况却并非总是如此
*
* 试想一下,以下的二种场景:
*   1.如果一个对象,我们仅仅只用一次,还有必要创建对象吗, 直接将类看作对象,岂不是更方便?
*   2.如果多个对象之间, 需要共享一些属性和方法, 而他们必须通过一个个独立对象调用的,无法共享,怎么办?
*
* 以上情况,将属性和方法直接定义在类中, 直接用类调用, 就可以解决
*/
class Demo02{
//对象属性
   public $product;
//静态属性,类属性
   public static $price;
//    类常量
   const NATION ='中国';
//构造方法
   public function __construct($a,$b)
   {
       $this->product=$a;
       self::$price=$b;
   }
//    对象方法,可以访问类属性
   public function getInfo1(){
// 这个方法可以用对象访问,方法中访问了静态属性,实现了类属性在对象中的共享
       return $this->product.'价格是:'.self::$price;
   }
//    静态方法,不可以访问对象属性(动态成员)
   public static function getInfo2(){
//        return $this->product.'价格是:'.self::$price;
   }
}
$obj=new Demo02('***',5599);
echo $obj->product,'<br>';
echo Demo02::$price,'<br>';
echo $obj->getInfo1().'<br>';
echo Demo02::NATION,'<br>';

版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
  • 区别:1、非方法可以访类中任何方法只能访类中;2、方法在时候就已经装载分配好了,非方法在时没有占用内存,只有实例化为对象时才会被分配内存。
    在php中,通过static关键字修饰方法被称为方法,方法内存空间是固,只能访类中,可以通过“类名::方法()”语句访方法。
    在php中,static方法指是“方法”;通过static关键字修饰属性和方法被称为属性和方法;方法不能访这个类中普通属性,因为那些属性属于一个对象,但可以访属性。
    php不实例化可以使用​调用或者使用PHP反射方式来调用方法,也就是说当类为private时,也可以在外部访,即不用创建类实例也可以访和方法。
    区别:方法可以通过“类名::方法名”直接调用;而普通方法需要创建一个实例,也就是new一个对象,然后通过“对象名->方法名”方式来调用。
    php中方法优点有:1、方法在代码任何地方都可以用;2、类每个实例都可以访类中属性;3、不需要实例对象就能访属性或方法。
    在java中,方法指被static修饰方法。
    php中this和self区别是:self调用是类,而$this调用是实例化对象。self可以访本类中属性和方法,以及const常量,this可以调用本类中方法和属性。
    区别:1、const用于类变量,而define不可用于类变量;2、const只接受标量,而define可以采用任何表达式;3、const常量时大小写敏感,但define可以通过第三个参数来指大小写是否敏感
    php方法也叫函数,是在类内部,可用于访对象数据;php方法语法格式是【[修饰符] function 方法名(参数..){[方法体][return 返回值]}】。
    php类使用方法:1、类通过class关键字来;2、访对象时候,属性名前不要加【$】;3、通过【->】访修改类内变量;4、函数返回值通过return来返回。
    php用static方法原因:1、全局变量说明之前再冠以static 就构全局变量;2、static函数普通函数作用域不同,仅在本文件;3、如果能将类方法static,就尽量

    2021-09-27

    vuejs是一套用于构建用户界面渐进式JavaScript框架,旨在更好地组织简化Web开发。