php对象数据类型_php:对象(object)数据类型实例详解

什么是对象?

对象是存储数据和有关如何处理数据的信息的数据类型。是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。

语法

在 PHP 中,必须明确地声明对象。

首先我们必须声明对象的类。我们使用关键字 class 来声明一个类,后面紧跟类的名字,主体用 {} 符号括起来,想下面这样class class_name{

......

}

类里面包含了属性和方法。

属性

通过在类定义中使用关键字 var 来声明变量,即创建了类的属性,也叫类的成员属性。

语法:class class_name{

var $var_name;

}

举个例子说明,如果定义一个 人 的类,那么人的 姓名、年龄、性别 等等便可以看做 人 这个类的属性。

方法

通过在类定义中声明函数,即创建了类的方法。

语法:class class_name{

function function_name(arg1,arg2,……)

{

函数功能代码

}

}

类的应用

一个定义了属性和方法的类就是一个完整的类了,可以在一个类里面包含一个完整的处理逻辑。使用 new 关键字来实例化一个对象以便应用类里面的逻辑。可以同时实例化多个对象。

语法:object = new class_name();

实例化一个对象后,使用 -> 操作符来访问对象的成员属性和方法。

语法:object->var_name;

object->function_name;

如果要在定义的类里面访问成员的属性或者方法,可以使用伪变量 $this 。$this 用于表示 当前对象 或 对象本身 。

例子:<?php

header("content-type:text/html;charset=utf-8");

class Person {

//人的成员属性

var $name; //人的名字

var $age; //人的年龄

//人的成员 say() 方法

function say() {

echo "我的名字叫:".$this->name."
";

echo "我的网址是:".$this->age;

}

} //类定义结束

//实例化一个对象

$p1 = new Person();

//给 $p1 对象属性赋值

$p1->name = "PHP中文网";

$p1->age = 'www.php.cn';

//调用对象中的 say()方法

$p1->say();

?>

运行该例子,输出:

04ebab6fbdf03dc859716b78dd605f22.png

上面就是我们复合数据类型“对象”的简单示例,关于更多对象的知识,请访问我们的资源”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中的object是所有类的基类,也就是说,所有的类都是继承自object类的。object类定义了一些基本的方法和属性,这些方法和属性可以被所有的子类继承和使用。在Python中,如果一个类没有指定父类,则默认继承自object类。object类的一些常用方法和属性包括: - __init__(self):构造函数,用于初始化对象。 - __str__(self):返回对象的字符串表示。 - __repr__(self):返回对象的字符串表示,通常用于调试。 - __eq__(self, other):判断两个对象是否相等。 - __hash__(self):返回对象的哈希值。 - __getattr__(self, name):当访问对象的属性不存在时,会调用该方法。 - __setattr__(self, name, value):当设置对象的属性时,会调用该方法。 - __delattr__(self, name):当删除对象的属性时,会调用该方法。 - __dir__(self):返回对象的属性列表。 下面是一个示例代码,演示了如何定义一个继承自object类的类,并使用其中的一些方法和属性: ```python class MyClass(object): def __init__(self, name): self.name = name def __str__(self): return 'My name is ' + self.name def __eq__(self, other): return self.name == other.name def __hash__(self): return hash(self.name) def __getattr__(self, name): return 'Attribute ' + name + ' does not exist.' def __setattr__(self, name, value): print('Setting attribute ' + name + ' to ' + str(value)) super().__setattr__(name, value) def __delattr__(self, name): print('Deleting attribute ' + name) super().__delattr__(name) def __dir__(self): return ['name'] # 创建一个MyClass的实例 obj = MyClass('Alice') # 调用__str__方法 print(obj) # 输出:My name is Alice # 调用__eq__方法 obj2 = MyClass('Alice') print(obj == obj2) # 输出:True # 调用__hash__方法 print(hash(obj)) # 输出:-9223372036577588807 # 访问不存在的属性 print(obj.age) # 输出:Attribute age does not exist. # 设置属性 obj.age = 18 # 输出:Setting attribute age to 18 # 删除属性 del obj.age # 输出:Deleting attribute age # 查看属性列表 print(dir(obj)) # 输出:['name'] ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值