php面向对象静态和非静态

静态与非静态的区别在于前面有没有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;
 ?>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值