您的位置:首页 > 编程语言 > PHP开发

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;
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 静态 非静态