php类和对象之公共属性与私有属性
私有属性
定义了私有属性(private)的属性只能在该类中使用,在该类中可以通过$this->来调用。而在外部引用私有属性将会报错。
实例:
代码如下 | 复制代码 |
<?php |
注意:设置了私有属性的字段也不能在子类中使用。
公共属性
在php类的操作中,声明字段时使用public、private、protected、final、const、static来描述对象的数据元素的作用域,这类字符称为限定访问控制字符。
有关键字public声明的属性称为公共属性,可以自由地在类的内部、外部读取和修改。这样做显然不够安全,破坏了类封装性的特点。
如果字段没有被声明,则默认为public。
实例:
代码如下 | 复制代码 |
<?php |
改变属性值
如果属性声明为public,则可以在外部调用时根据需要改变属性的值或者赋予未定义的属性值。
实例:
代码如下 | 复制代码 |
<?php |
unlink() 函数删除文件。
若成功,则返回 true,失败则返回 false。
代码如下 | 复制代码 |
<?php |
例
代码如下 | 复制代码 |
<?php |
加上判断
代码如下 | 复制代码 |
<?php |
输出结果:
文件 test.txt 删除成功!
下面加了判断文件是否存在:
代码如下 | 复制代码 |
<?php $myfile = “./test1.txt”; |
rmdir() 函数删除一个目录,成功返回 TRUE,否则返回 FALSE 。
语法:
bool rmdir( string dirname )
例子:
代码如下 | 复制代码 |
<?php |
const属性
用const属性定义的字段是一个常量,类中的常量和静态变量类似,不同之处就是常量的值一旦赋值不能被改变。
const定义常量不需要加$符号,其结构形式如下:
const 常量名称 //常量名称不能用$符号
实例:
代码如下 | 复制代码 |
<?php |
提示:使用const定义的常量名称一般都大写,这是一个约定,我们要养成一个良好的命名方式习惯。如果定义的常量由多个单词组成,则使用下划线_链接,这也是一个约定。例如:FILE_SIZE。
protected属性
protected限定的字段作用域在public和private之间,若该成员被声明称protected(保护),则代表只能在该类和该类的子类中使用该字段。
实例:
代码如下 | 复制代码 |
<?php |
析构函数
php析构函数的作用刚好和构造函数相反,构造函数是在对象实例化时自动执行,而析构函数在对象被销毁时自动执行。
默认情况下,php仅释放对象属性所占用的内存,并不销毁对象相关的资源,而利用析构函数在使用一个对象之后执行代码来清除内存,并将对象从内存中销毁。析构函数__destruct()结构形式如下:
代码如下 | 复制代码 |
function __destruct(){ /* class initialization code */ } |
析构函数是由系统自动调用,不能带参数。
实例:
代码如下 | 复制代码 |
<?php |
析构函数的调用
php如何调用析构函数?当php脚本不再与对象相关时将调用析构函数。如果要明确地销毁一个对象调用析构函数,可以给指向对象的变量不分配任何值,通常将变量赋值为NULL或者用unset()函数。
实例:
代码如下 | 复制代码 |
<?php |
构造函数
我们在使用类的过程中,有时需要立即为实例化对象的多个字段父子,如果通过手工,会带来很多不可预测的问题,而如果在对象创建过程中自动执行,则会带来很多方便。
php构造函数作用就是当类被实例化时,会自动执行的函数,又称为构造函数。
构造函数的声明和其它函数一样,知识构造函数的名称是“__construct”固定的名称,其结构形式如下:
代码如下 | 复制代码 |
function __construct([argument1,argument2,argument3]){ |
实例:
代码如下 | 复制代码 |
<?php |
调用父类构造函数
构造函数可以被子类调用,php调用父类构造函数时必须使用parent关键字,否则不会自动调用。
实例:
代码如下 | 复制代码 |
<?php |
final关键字
php final关键字用来在一个函数或者类名称前面,表明该函数不能被重写或者该类不能被继承。
1、final方法不能被重写。
如果不希望类中某个方法被子类重写,只需要在这个方法前加上关键字final,即设置final方法。
实例:
代码如下 | 复制代码 |
<?php |
加了final关键字的方法不能被重写,运行出错。
2、final类不能被继承。
被声明了final的类不能被继承,否则出错。
实例:
代码如下 | 复制代码 |
<?php |
static关键字
php static关键字不仅可以用来声明一个静态变量,在类中同样可以声明静态的属性或者方法,成为“类属性”或“类方法”。
1、声明了静态的属性和方法后,在类中不能用$this关键字来引用,可以使用下面两种方法引用:
在类中:self::静态成员名称
在类外:类名称::静态成员名称
2、访问该类时,可不必实例化,直接使用类名称::静态成员名称的格式。
静态属性实例:
代码如下 | 复制代码 |
<? |
静态方法实例:
代码如下 | 复制代码 |
<? |
$this关键字
为了解决php类和对象中变量与属性的命名冲突和不确定性问题,引入了”$this”关键字来调用当前的对象。
在类中调用当前对象的属性和方法,必须使用”$this->”关键字;
$this在构造函数中指该构造函数所创建的新对象;
方法内的局部变量不属于对象,不使用$this关键字取值。
使用$this关键字,我们可以在类中调用对象属性或者方法。
1、调用变量
实例:
代码如下 | 复制代码 |
<?php |
2、调用方法
实例:
代码如下 | 复制代码 |
<?php |
相关文章
- 这篇文章主要介绍了C# 字段和属性的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...2020-11-03
- 这篇文章主要介绍了java8如何用Stream查List对象某属性是否有重复的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-11
- 这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
- 这篇文章主要介绍了R语言删除指定变量或对象的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
- PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
- 这篇文章主要介绍了JavaScript预解析,对象的的相关资料,小编觉得这篇文章写的还不错,需要的朋友可以参考下,希望能够给你带来帮助...2021-11-10
- js修改input的type属性有些限制。当input元素还未插入文档流之前,是可以修改它的值的,在ie和ff下都没问题。但如果input已经存在于页面,其type属性在ie下就成了只读属性了,不可以修改。...2013-10-19
如何在Spring WebFlux的任何地方获取Request对象
这篇文章主要介绍了如何在Spring WebFlux的任何地方获取Request对象,帮助大家更好的理解和使用springboot框架,感兴趣的朋友可以了解下...2021-01-26- index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
牛叉的Jquery――Jquery与DOM对象的互相转换及DOM的三种操作
只有jQuery对象才能调用jQuery类库的各种函数,同样有些dom对象的属性和方法在jQuery上也是无法调用的,不过基本上jQuery类库提供的函数包含了所有的dom操作。这就需要我们知道如何将jQuery对象和DOM的相互转换的方法。1...2015-10-30- 这篇文章主要为大家介绍了Vue的计算属性,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助...2021-11-16
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04- 这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
- js调试中经常会碰到输出的内容是对象而无法打印的时候,光靠alert只能打印出object标示,却不能打印出来里面的内容,甚是不方便,于是各方面整理总结了如下一个函数,能够将数组或者对象这类的结果一一打印出来,具体代码如下: fu...2015-10-21
- 这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
- 这篇文章主要介绍了javascript self对象使用详解的相关资料,需要的朋友可以参考下...2016-10-20
- 本文给大家介绍如何替换json对象中的key,通过实例代码给大家介绍key的替换方法,代码也很简单,需要的朋友参考下吧...2021-06-02
- 这篇文章主要介绍了详解Javascript中的Object对象,需要的朋友可以参考下...2016-03-01
- 这篇文章主要介绍了jquery的方法属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2021-11-10
C# Dynamic关键字之:调用属性、方法、字段的实现方法
本篇文章是对C#中调用属性、方法、字段的实现方法进行了详细的分析介绍,需要的朋友参考下...2020-06-25