今天开始学习类和面向对象了.
1 对象实例化
在实例化对象的时候,必须使用new关键字.如果该类属于一个名字空间,则必须使用其完整名称.
<?php
$instance = new SimpleClass();
// 也可以这样做:
$className = 'Foo';
$instance = new $className(); // Foo()
?>
1.1 对象赋值
我们创建一个对象的实例后,后面进行赋值的时候有两种赋值.
第一种是直接$a=$b,第二种是引用赋值$a=&$b.
这两个有什么区别呢?问题可深了,所以我决定单独写一篇文章来说这个问题.
php学习笔记(3.5)–关于引用赋值和一般赋值
1.2 extends关键字
一个类可以在声明中用 extends 关键字继承另一个类的方法和属性.PHP不支持多重继承,一个类只能继承一个基类. 被继承的方法和属性可以通过用同样的名字重新声明被覆盖.但是如果父类定义方法时使用了 final,则该方法不可被覆盖.可以通过 parent:: 来访问被覆盖的方法或属性. 当覆盖方法时,参数必须保持一致否则 PHP 将发出 E_STRICT 级别的错误信息.但构造函数例外,构造函数可在被覆盖时使用不同的参数.
2 属性
类的变量成员叫做属性,属性声明是由关键字public,protected或者private开头,然后跟一个普通的变量声明来组成,尤其需要注意的是,属性的变量可以初始化,但是初始化值必须是常数,也就是不能有表达式比如下面的就是错误的:
public $var1 = 'hello ' . 'world';,public $var3 = 1+2;.
在php5.3之后,nowdocs的结构也是可行的.