正在学习“类”,概念没理清楚,对$this、属性、方法还没掌握,于是先来学习一下“->”,顺便把孪生兄弟“=>”也学一下。
(1)、
->是访问对象成员的符号。具体来讲,是用来连接变量和当前类中的某个属性。
用手册上的例子来看一下:
class MyClass
{
private $foo = FALSE;
public function __construct()
{
$this->$foo = TRUE;
echo($this->$foo);
}
}
$bar = new MyClass();
giving "Fatal error: Cannot access empty property in ...test_class.php on line 8"
The subtle change of removing the $ before accesses of $foo fixes this:
class MyClass
{
private $foo = FALSE;
public function __construct()
{
$this->foo = TRUE;
echo($this->foo);
}
}
$bar = new MyClass();
//文档例子的前半段,代码有一点错误: $this->$foo
应作 $this->foo
;
来看一下代码
$this->foo = TRUE;
这是把 TRUE赋值给当前类(MyClass)中的成员$foo。至于为什么不是$this->$foo
,我的理解是this->$foo
是一个整体变量,this意味着这次赋值发生在当前类中。
另外多说一句,类和对象的概念。
对象的概念:
对象是人们要进行研究的事物,也是大名鼎鼎的OOP(Object Oriented Programming)中的object。
类的概念:
类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和方法两个主要部分。
//网上看到的定义
每个类的定义都以关键字 class 开头,后面跟着类名,后面跟着一对花括号,里面包含有类的属性与方法的定义。
//手册定义
也就是说,类(class)由方法(method)和属性(properties)组成(后者也可以叫做字段(field),两者通常在php的“类”里是同一个东西)。
比方说,现在要研究游乐园的游客的体能,那这些游客就是对象(object),那就可以把他们归为很多类(class),比如学生、家长、员工等等,再按群体用不同的方法去研究。
归纳一下,每一个类都是一组具有相似属性的对象(object)集合。
对应在代码上,其区别为:
class students{}//这个是类
$visitor1 = new person();//而将类实例化,就是对象
(2)、
=>是访问数组成员的符号。
看文档例子:
<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
);
var_dump ($array);
显然=>的作用是连接数组中的键(keys)和值(values),是数组中的特定赋值动作。
本文主要简单介绍了->,我有预感,日后与之打交道的次数不会少。