php成员里有哪些属性

发布时间:2023-02-27 10:14:31 作者:iii
来源:亿速云 阅读:105

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

php成员里面有3种:1、成员属性(类属性),即定义在类中的变量,用于储存类中的数据;2、成员方法,即定义在类中的函数,提供给对象解决事件;3、类常量,是在类中定义的常量,使用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成员里有哪些属性这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. Ubuntu环境如何编译安装PHP和Nginx
  2. php+nginx服务发生500、502错误怎么办

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:帝国cms连接不上数据库如何解决

下一篇:怎么使用C语言实现音乐播放器

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》