php 静态成员继承,类声明,类属性重载,类的继承,以及类的中常量属性与静态成员的访问2018/9/03...

这篇博客介绍了PHP中类的声明与实例化,包括对象初始化、属性重载,以及类常量的使用。通过示例展示了如何创建类、实例化对象,设置和访问私有属性,以及使用魔术方法如`__get()`、`__set()`、`__isset()`和`__unset()`进行属性操作。还提到了静态成员的声明和访问。
摘要由CSDN通过智能技术生成

实例

/**

* 类的声明与实例化

* */

//用关键字class声明一个类

class Demo1

{

}

//用关键字new实例化一个类

$demo1=new Demo1();

//给当前对象添加一些属性和方法

$demo1->name='小王';

$demo1->sex='男';

$demo1->hello=function (){

return '我说一个自定义的类方法';

};

//使用对象符:->来访问对象中的成员(属性和方法)

echo $demo1->name,':',$demo1->sex,'
';

//正确的调用方式,对象方法应该以回调的方式运行

echo call_user_func($demo1->hello);

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

/**

* 类常量,对象初始化,属性的重载

* 1. 类常量可用来创建对象之间的共享数据

* 2. 对象初始化: 用构造方法实现,创建对象之前会自动调用,完全对象的一些初始化工作

* 3.属性重载:在类的外部访问不存在或者无权限访问的属性时,会自动触发此类方法调用

*  属性重载涉及四个方法:__get(),__set(),__isset(),__unset()

*/

//父类

class test

{

//属性常量

const PAGE_NAME='WELCOME TO HANGZHOU';

private  $name;

private  $age;

public  function  __construct($name,$age)

{

$this->name=$name;

$this->age=$age;

}

public function __get($name)

{

return $this->name;

}

public  function  __set($name, $value)

{

// TODO: Implement __set() method.

return $this->$name=$value;

}

public function  showResult()

{

return '我爱你,中国!';

}

}

class  show extends  test{

private  $sex;

//    子类构造函数

function  __construct($name, $age,$sex='男')

{

//父类的构造方法

parent::__construct($name, $age);

$this->sex=$sex;

}

}

echo  '父类类调用';

$result=new test('小红',12);

//方法重载设置值

$result->name='小军';

echo  $result->name;

echo  '


';

echo  '子类调用';

$show=new show('小米','55');

echo   '姓名:',$show->name='小红'.'
';

echo  '性别:',$show->sex='女';

echo '
'. '子类调用父类方法','
';

//子类调用父类方法

echo $show->showResult();

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

/**

* 3,类常量与类属性的重载

*/

class lianxi1{

//定义一个常量变量

const  TITTLE_NAME='WELCOME TO MY HOME!';

//定义三个变量,分别访问范围府为public private ,protected

public  $name;

private  $age;

protected  $sex;

//构造函数,类加载的时候进行初始化变量和方法

public  function  __construct($name,$age,$sex='男')

{

$this->name=$name;

$this->age=$age;

$this->sex=$sex;

$this->show();

}

function  show()

{

return  '姓名:'.$this->name.'年龄:'.$this->age.'性别:'.$this->sex;

}

//获取属性重载方法

public function  __get($name)

{

return $this->$name;

}

//设置属性重载方法

public  function  __set($name, $value)

{

// TODO: Implement __set() method.

return $this->$name=$value;

}

// 检测属性重载方法

public  function  __isset($name)

{

return isset($name)?$name:'没有访问权限';

}

//删除属性重载方法

public  function  __unset($name)

{

if ($name='name')

{

unset($this->$name);

}

else

{

return false;

}

}

}

//调用常量方法

echo '输出常量变量:',lianxi1::TITTLE_NAME;

echo  '


';

//实例化对象,设置默认的值

$result=new lianxi1('小明','20');

//var_dump($result);

//访问属性,因为属性全部被封装,所以必须通过一个统一的外部接口访问

echo  $result->show();

echo  '


';

//通过创建获取属性的重载方法,从而获取变量的值

echo  '通过创建获取属性重载读取私有变量:年龄',$result->age;

echo  '


';

echo  '通过创建获取属性重载读取私有变量:性别',$result->sex;

echo  '


';

//通过设置属性的重载方法,从而改变变量的值

echo  '通过设置属性重载方法改变私有变量:年龄',$result->age=33;

echo  '


';

//通过设置属性的重载方法,从而改变变量的值

echo  '通过设置属性重载方法改变私有变量:年龄',$result->sex='女';

echo  '


';

echo  '改变年龄和性别值后:',$result->show();

echo  '


';

echo  '检测变量是否存在:';

echo isset($result->name) ? '存在
' : '不存在
';

echo  '


';

echo  '删除变量后显示:';

unset($result->name);

unset($result->age);

unset($result->sex);

echo  '改变年龄和性别值后:',$result->show();

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

/**

*类中静态成员的声明与访问

*/

class  test1

{

//定义静态成员变量

private static  $name;

private  static $age;

private  static  $sex;

public static function  show()

{

echo '我叫:',self::$name,'今年:',self::$age,'岁,性别是',self::$sex;

}

public  function  __get($name)

{

return $name;

}

function  __construct($name,$age,$sex)

{

self::$name=$name;

self::$age=$age;

self::$sex=$sex;

}

}

$a=new test1('小米','25','男');

echo test1::show();

运行实例 »

点击 "运行实例" 按钮查看在线实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值