php成员里有哪些属性

这篇文章主要讲解了“PHP成员里有哪些属性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP成员里有哪些属性”吧!

PHP成员里面有3种:1、成员属性(类属性),即定义在类中的变量,用于储存类中的数据;2、成员方法,即定义在类中的函数,提供给对象解决事件;3、类常量,是在类中定义的常量,使用const关键字定义。

一、概念

类成员指定义在类中的一系列数据,他们是直接依赖于类的一级成员。类成员包括:成员属性、成员方法、类常量。

  • 成员属性(类属性):即定义在类中的变量,用于储存类中的数据

  • 成员方法:即定义在类中的函数,提供给对象解决事件。

  • 类常量:在类中定义的常量,使用const关键字定义。

属性方法在访问时需要使用访问限定修饰符修饰。

语法:

class 类名{
 
        public $成员属性名[=成员属性值]; //成员属性可以只定义而不赋值,放在之后赋值。 
        [public] function 成员方法名(){
                   ... 
                 } 
        const 常量名=值; 
 
}

类的成员属性可以只定义而不赋值,在之后的逻辑操作中根据情况赋值,但是必须有访问限定修饰符修饰,成员方法的访问限定修饰符可以省略,省略后认就是public,关于限定修饰符会在后面详解。

二、实现步骤

实现类成员的步骤同样需要进行业务逻辑分析,大致的步骤是:

  • 声明类结构

  • 分析类是否需要储存数据来确定是否定义成员属性或定义多少成员属性

  • 分析类是否要进行某些操作来确定是否要定义成员方法

  • 分析是否需要定义常量

  • 对象实例化

  • 通过对象调用类成员

例:分析新闻投稿的类的简单示例

实现新闻投稿,首先要声明类结构:

class deVote{ }

然后分析是否需要存储数据,很明显,投稿新闻肯定要储存数据,首先要储存新闻标题、新闻内容,然后投稿人的信息,包括昵称,邮箱,手机号等等。

这些数据我们通过成员属性储存:

class deVote{
        public $nickname="投稿人";
        public $title="新闻标题";
        public $content="投稿内容";
        public $email="邮箱";
        public $phone="手机号"; 
}

然后分析是否需要执行操作,投稿新闻首先要对新闻内容进行过滤,屏蔽不当词语,然后提交到数据库中保存草稿,等待审核

class deVote{
        public $nickname="投稿人";
        public $content="投稿内容";
        public $email="邮箱";
        public $phone="手机号";
        function clear($content){
                 //过滤新闻内容 
        }
        function input(){
         //提交到数据库 
        } 
}

需不需要类常量呢?暂且是不需要的,那接下来就是实例化类,然后通过对象调用成员实现功能了。

$deVote=new deVote();
//实例化对象 
$deVote->nickname="小杜"; 
$deVote->title="一件大事"; 
$deVote->content="我手机没电了"; 
$deVote->email="2811051813@qq.com"; 
$deVote->phone="就不告诉你"; 
$deVote->clear($deVote->content); 
$deVote->input(); 
//通过调用成员实现业务

关于类成员调用,我们使用的是->链接,如上面的例子所示,调用属性的语法是:

$对象->属性名;

请注意:调用属性名不需要加$符,在调用时,他们是一体的。但是在定义属性时,必须有$符表示定义变量。

调用属性会得到当前属性的值,对其赋值就会改变他的值,如上,如果是直接调用title属性,得到的值是“新闻标题”,如果再对其赋值,此时title的值就是一件大事,如果对属性重新赋值了,在接下来使用该属性获得的值都是后面赋值的内容,因为类属性实际上也就是一个变量。

重新赋值等同于:

$deVote->title="一件大事"; 
//等同于: 
public $title="一件大事";

调用方法

$对象->方法名(参数)

调用类常量是静态调用,会在后面详解。

可以通过打印对象来直观的展示上面的内容

class deVote{
        public $nickname="投稿人"; 
        public $content="投稿内容"; 
        public $email="邮箱"; 
        public $phone="手机号"; 
        function clear($content){
         //过滤新闻内容 
        } 
        function input(){
         //提交到数据库 
        } 
} 
 
$deVote=new deVote(); 
var_dump($deVote); 
//object(deVote)#1 (4) { ["nickname"]=> string(9) "投稿人" ["content"]=> string(12) "投稿内容" ["email"]=> string(6) "邮箱" ["phone"]=> string(9) "手机号" }

自己测试一下,可以看到成员属性的值是认的,如果通过对象给成员属性重新赋值,然后再打印对象:

$deVote->nickname="小杜"; 
$deVote->title="一件大事"; 
$deVote->content="我手机没电了"; 
$deVote->email="2811051813@qq.com"; 
$deVote->phone="就不告诉你"; 
$deVote->clear($deVote->content); 
$deVote->input(); 
var_dump($deVote);

可以发现类属性的值被改变了。

三、成员操作

上面的例子已经涉及到了成员操作,即访问成员属性修改成员属性,成元属性基本的操作是增删改查,查和改上面已经演示过,请看增加属性的操作:

增加成员属性直接在对象后调用一个不存在的成员属性并赋值即可:

$deVote->id=1; 
/*
 打印结果: object(deVote)#1 (6) { ["nickname"]=> string(6) "小杜" ["content"]=> string(18) "我手机没电了" ["email"]=> string(17) "2811051813@qq.com" ["phone"]=> string(15) "就不告诉你" ["title"]=> string(12) "一件大事" ["id"]=> int(1) } 
*/

执行上面的操作后会在类中新增一个属性id,并赋值为1,这个值在之后也可以通过对象直接访问:

echo $deVote->id; //输出1

直接调用一个不存在的属性也不会报错,但是他的值是NULL。

var_dump($deVote->ids); //NULL

删除属性使用unset方法

unset($deVote->id); 
var_dump($deVote->id); 
//NULL

通过对象操作的类属性只在当前对象下生效:

$deVote->age=18; 
$dv=new deVote(); 
var_dump($dv); 
//object(deVote)#2 (4) { ["nickname"]=> string(9) "投稿人" ["content"]=> string(12) "投稿内容" ["email"]=> string(6) "邮箱" ["phone"]=> string(9) "手机号" }

方法操作只有调用一种操作,即只可以通过对象调用类的成员方法

$deVote->input();

注意:类成员在类中可以无限定义,但是类中只能包含类属性、类方法、类常量,其他的语法都不可以写在类中。

class Test{
        echo 1234; 
        var_dump("错误"); 
        if($a==1){ echo "True"; } 
} 
//Syntax error, unexpected 'echo' (T_ECHO), expecting function (T_FUNCTION) or const (T_CONST)

感谢各位的阅读,以上就是“PHP成员里有哪些属性”的内容了,经过本文的学习后,相信大家对PHP成员里有哪些属性这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程之家,小编将为大家推送更多相关知识点的文章,欢迎关注!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中NATIVE的支付实现流程与PC端实现扫码支付流程
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中APP的支付的配置与实现流程
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户信息这个功能的开发流程。 配置 1.首先得在微信公众平台申请一下微信小程序账号并获取到小程序的AppID和AppSecret https://mp.weixin.qq.com/cgi-bin/loginpage?url=%2Fwxamp%2F
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一款开源且免费商用的后台开发框架,它基于ThinkPHP和Bootstrap两大主流技术构建的极速后台开发框架,它有着非常完善且强大的功能和便捷的开发体验,使我逐渐喜欢上了它。
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛,就离不开通讯了,然后我就想到了长连接。这里本人用的是GatewayWorker框架。
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中JSAPI的支付实现流程
服务器优化必备:深入了解PHP8底层开发原理
Golang的网络编程:如何快速构建高性能的网络应用?
Golang和其他编程语言的对比:为什么它的开发效率更高?
PHP8底层开发原理揭秘:如何利用新特性创建出色的Web应用
将字符重新排列以形成回文(如果可能)在C++中
掌握PHP8底层开发原理和新特性:创建高效可扩展的应用程序
服务器性能优化必学:掌握PHP8底层开发原理
PHP8新特性和底层开发原理详解:优化应用性能的终极指南
将 C/C++ 代码转换为汇编语言
深入研究PHP8底层开发原理:创建高效可扩展的应用程序
C++程序查找法向量和迹
PHP8底层开发原理实战指南:提升服务器效能
重排数组,使得当 i 为偶数时,arr[i] >= arr[j],当 i 为奇数时,arr[i] <= arr[j],其中 j < i,使用 C++ 语言实现
Golang的垃圾回收:为什么它可以减少开发人员的负担?