[]
[[]]
[id_[]]
这完全可以理解,接下来我们进行具体说明,拥有C++和Perl的知识背景的人会注意到,它们与某些特定标记的作用非常相似。
php中的‘- >’符号属于“插入式解引用操作符”。这种符号可以理解为一种调用子程序的方式,其特点在于参数是通过引用传递的。在PHP函数调用过程中,大多数情况下参数都是采用引用传递形式。PHP的‘->’功能与Perl或C++中的用法相似。这里有一个关于解引用的简单示例。
PHP脚本里常用到‘=>’这个连接符,由于它的数组功能很强大,我们经常需要处理数组,毕竟用它来操作数据非常便捷。
数组对象实例化,键名为内部,键值为回复,逗号分隔
[id_1381083480]
padx => 2m,
pady => 2m,
[id_6[id_460733257]561591]
ipady => 1m
)
顺便讲一下,你要是想要表示数字“大于等于”,就应当用“>=”,千万不能用“=>”。
在PHP里,双冒号被称为作用域界定符,也称作域限定符。这个符号可以看作与C语言中的点号类似,但它更接近C++中(Perl)的类作用域运算符。
php调用类的内部静态成员,或者是类之间调用就要用::
下面是一个例子:
class A
{
static $count = 0;
static function haha()
{
//
}
function diaoyoug()
{
self::haha();
self::$count;
}
}
a.b.c; /* C语言中的 */
a::b::c(); // C++ 中的函数
$a::b::c; # Perl 5中的标量
二、这些词汇的含意比较容易明白,第一个词表示指示,第二个词代表个体,第三个词指代长辈。
this是指向当前对象的指针(姑且用C里面的指针来看吧)
this是指向当前对象实例的引用,并非指向任何其他对象或类别。
self是指向当前类的指针
Self代表类别自身,并非指向某个具体实例,通常用于访问类内的静态属性。
是指向父类引用的变量,我们经常借助引用来阐述,因为缺乏更合适的词汇
根据实际的例子来看看
(1) this
1 name = $name; //这里已经使用了this指针
12 }
13
14 //析构函数
这个方法在对象销毁时会调用,里面没有任何操作,保持空置
16
17 //打印用户名成员函数
18 function printName()
19 {
20 输出该对象的名称属性,再次调用了当前实例的引用
21 }
22 }
23
24 //实例化对象
创建了名为UserName的类实例,并将其赋值给变量nameObject,该实例接收字符串"heiyeluren"作为参数
26
27 //执行打印
二十八 $nameObject要显示名字,就会显示heiyeluren
29
30 //第二次实例化对象
创建了名为PHP5的用户名对象,并将其赋值给变量nameObject2
32
33 //执行打印
nameObject2这个对象调用printName方法后,会显示PHP5这个结果
35 ?>
我们观察,上文中的类在第十一行和第二十个位置都调用了该指针,那么那个时刻该指针指向的对象究竟是什么?
实际上this是在创建对象时决定其引用对象,比如首次创建对象时(25行),this就指向$对象,接着执行18行的打印操作时,print($this->name)就变成了print($->name),因此最终显示的是空字符串。
第二个例子中,输出语句从print( $this- >name )更改为print( $->name ),因此显示出了"PHP5"。
因此,这便是唯一指向该实例的参照,它不会关联任何其他实体或类型。
(2)self
首先需要清楚一个概念,self是指向类本身,而不是任何已经创建的对象,通常self用来访问类中的静态属性。
1 最新计数等于静态首计数的值加一,通过self来访问这个静态变量,注意使用self时需要借助::这个作用域解析符
13 }
14
15 //打印最次数值
16 这个函数用来输出最新的计数结果,它会把最新的数值显示出来,并且只展示最终的统计数字
17 {
输出最后一个计数值,这个计数值是先前记录的
19 }
20 }
21
22 //实例化对象
创建了计数器类的一个实例,赋值给变量计数器对象,编号为23
24
25 这个对象最后统计的数值是 1。
26
27 ?>
我 们这里只要注意两个地方,第6行和第12行。
在第二行设置了一个静态变量,其初始设定为0,然后在第12行引用了该变量,通过self进行访问,并且其间以"::"作为分隔符
这就是通常所说的类内静态变量,此时所引用的是该类自行设定的静态属性,这些静态属性并不关联于任何具体的对象实例,它们仅仅属于类本身,
那么当我们直接调用类的构造函数时,就不能用this来指向实例,需要用self来引用
self代表的是类本身,并不关联任何对象实例。换句话说,即便类中包含静态成员,也必须借助self来访问。
(3)
明白那是针对父级的引用,通常借助它来启用先辈的初始设定
1 name = $name;
13 }
14 }
15
16 //派生类
Person这个类别以Animal为根基,它承载了Animal类的所有特质
18 {
这个变量用来记录个人的性别属性,分为两种情况,男性或者女性,通过这个字段可以知道个体的性别信息
这个变量用来记录个人的岁数,数值以数字形式体现,属于成员属性范畴
21
22 //继承类的构造函数
这个方法叫做构建函数,它接受两个参数,一个是人的性别,另一个是人的年龄,通过这两个参数来初始化对象的相关属性,性别和年龄这两个信息将被存储在对象内部,以便后续使用
24 {
构造函数被继承调用,传入了标识符heiyeluren,这是对父类构造方法的一种调用形式
这个人的性别等于personSex这个值,将这个值赋给personSex属性
将人员年龄值赋给对象属性,年龄信息记录在变量中,数值数据保存于属性字段内
28 }
29
30 function printPerson()
31 {
输出这个人的名字,他是男性,年龄是三十岁,现在是本年
33 }
34 }
35
36 //实例化Person对象
创建一个新对象,命名为personObject, 这个对象属于Person类, 接收两个参数, 第一个是性别为男性, 第二个是年龄为21岁, 使用$符号声明这个变量
38
39 //执行打印
那个人物对象显示他的信息,他是黑衣人,性别为男性,现年二十一岁
41
42 ?>
我们留意到若干要点:成员属性均具备,尤其是父类的,旨在让继承类借助this来获取。
我们留意到第25行: ::( "" ),这个位置需要调用父类的构造函数,以便完成对父类的初始化
父类中的成员都是可继承的,因此子类可以直接用 this 来访问。
总结:this代表对象实例的地址,self指向类本身,同时也是父类的指向。
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。


客服1