php面向对象静态和非静态
2014-03-08 12:41
288 查看
静态与非静态的区别在于前面有没有static的修饰,有static的是静态变量,明显,没有的则是非静态了。一般调用静态变里,是通过 :: 来调用,而非静态是通过->来调用。但下面去会颠覆你的三观。你会发现用 :: 也能调用非静态,用 ->也能调用静态.
<?php class admin { public static $name = 'Mike'; public $nick = 'Jose'; public static $count = 0; public $num = 0; public function __construct() { } public static function getName() { return self::$name; } public function getNick($nick) { $this->nick = $nick; return $this->nick; } public static function addCount() { self::$count = self::$count + 1; return self::$count; } public function addNum() { $this->num += 1; return $this->num; } public static function Max($num, $num2) { return $num >= $num2 ? $num : $num2; } public function Max3($num1, $num2, $num3) { $num = self::Max($num1,$num2); $num = self::Max($num, $num3); return $num; } public function index() { echo 'This is index'; } } $person = new admin(); $person->nick; // Jose $person->getNick('Tang'); echo $person->nick; //tang; echo admin::$count; // 0 admin::addCount(); // $count = 1 admin::addCount(); // $count = 2 admin::addCount(); // $count = 3 echo admin::$count; echo admin::index(); // This is index echo $person->index(); // This is index echo admin::getNick('nike'); //报错了,因function getNick() 中有$this //同样也可以通过 实例名 -> 来调用静态方法 $person->addCount(); $person2 = new admin(); $person->addCount(); // $count = 5; ?>
相关文章推荐
- PHP面向对象之旅:静态抽象方法
- php面向对象中static静态属性和静态方法的调用
- php面向对象中static静态属性与方法的内存位置分析
- php面向对象中static静态属性和静态方法的调用
- php面向对象中static静态属性和静态方法的调用
- php面向对象中static静态属性与方法的内存位置分析
- php面向对象中的单例与静态方法的对比,以及关于class自动加载的分析
- php部分---面向对象静态、抽象类、oop接口、加载类、魔术方法、关键字。
- 关于php面向对象动态绑定和静态绑定的理解
- php面向对象中static静态属性和静态方法的调用
- 面向对象加强--静态和非静态
- php面向对象笔记4 多态,静态方法,单例模式
- 黑马程序员:面向对象中的静态和非静态
- php面向对象中static静态属性和静态方法的调用
- php面向对象中static静态属性和静态方法的调用
- php面向对象中static静态属性和静态方法的调用
- php面向对象中static静态属性和静态方法的调用
- 面向对象--不能对非静态字段进行静态引用 面向对象-static 类名.对象
- php部分---面向对象静态、抽象类、oop接口、加载类、魔术方法、关键字。
- php面向对象中static静态属性和静态方法的调用