1 <?php 2 /** 3 * PHP面向对象基础 调用变量 4 */ 5 class Computer{ 6 //字段成员的声明格式:修饰符 变量名[=xxx] 7 public $_name;//public 表示类外可以访问,为公有变量 8 public $_model; 9 } 10 //创建一个对象,生产出来一台电脑。->表示指向 11 $computer1 = new Computer(); 12 $computer1->_name='dell';//给成员变量赋值 13 echo $computer1->_name; 14 ?>
1 <?php 2 /** 3 * PHP面向对象基础 创建方法 4 */ 5 class Computer{ 6 public $_name; 7 public $_model; 8 //创建方法的格式:修饰符 function 方法名(){} 9 //如果不加修饰符,默认就是public 10 public function _run() { 11 echo '我是一个方法'; 12 } 13 14 } 15 $computer1 = new Computer(); 16 $computer1->_run(); 17 18 19 ?>
1 <?php 2 /** 3 * PHP面向对象基础 给方法加参数 4 */ 5 class Computer{ 6 public $_name; 7 public $_model; 8 9 public function _run($_who) { 10 echo '我是'.$_who; 11 } 12 13 } 14 $computer1 = new Computer(); 15 $computer1->_run('小王'); 16 17 18 ?>
构造方法
所谓构造方法,也是方法,只不过是一种特殊的方法。而方法名必须和类名一致,并且不需要像普通方法一样,必须通过调用才能执行,只需要实例化即完成调用过程。一般来说,构造方法总是在做一些初始化的工作。我比较喜欢称构造方法为:构造器,受Java的影响,比较容易理解。
1 <?php 2 /** 3 * PHP面向对象基础 构造方法(旧) 4 */ 5 class Computer{ 6 //创建一个构造方法 7 public function Computer(){ 8 echo ' This is 构造方法'; 9 } 10 } 11 //只要实例化,就可以执行构造方法 12 $computer1 = new Computer(); 13 14 ?>
在 PHP5 我们可以通过__construct 的内置方法来识别构造方法,而不用再需要和类名相同了。
1 <?php 2 /** 3 * PHP面向对象基础 构造方法(新) 4 */ 5 class Computer{ 6 //创建一个构造方法 7 public function __construct(){ 8 echo '我是新版的构造方法'; 9 } 10 } 11 //只要实例化,就可以执行构造方法 12 new Computer(); 13 14 ?>
相对应构造方法, 还有一种内置的方法是析构方法, 它的用途在整个类使用完毕都执行。一般可用于清理内存中对象(脚本执行完毕的时候会自动清理)。而如果有脚本执行完毕后并没有清理的,比如数据库数据等,就有必要使用析构方法。
1 <?php 2 /** 3 * PHP面向对象基础基础 构造方法 运行比较 4 */ 5 class Computer{ 6 //创建一个构造方法(最先执行) 7 public function __construct(){ 8 echo '我是新版的构造方法'; 9 } 10 11 //析构方法(最后执行) 12 public function __destruct(){ 13 echo '我是析构方法'; 14 } 15 16 // 普通方法(中间执行) 17 public function _run(){ 18 echo '我是普通方法'; 19 } 20 21 } 22 //只要实例化,就可以执行构造方法 23 $computer1 =new Computer(); 24 $computer1->_run(); 25 26 ?>