php面向对象第七篇 static最详解

static:
一个一个来吧,好吧。
第一:被static声明的属性可以被实例化调用吗?

<?php
	class people
	{
		static $name="cyg";
	}
	$people1=new people();
	$people1->name;
?>

在这里插入图片描述
第二;被·static声明的方法可以被实例化调用吗?

<?php
	class people
	{
		static function eat()
		{
			echo "吃饭啦";
		}
	}
	$people1=new people();
	$people1->eat();
?>

在这里插入图片描述
第三:被static修饰的属性可以被类调用吗?

<?php
	class people
	{
		static $name='cyg';
	}
	echo people::$name;
	?>

在这里插入图片描述

第四:被static修饰的方法可以被类调用吗?

<?php
	class people
	{
		static function eat()
		{
			echo "吃饭啦";
		}
	}
	people::eat();
	?>

在这里插入图片描述

然后呢是:问题:静态成员属于类的,不属于对象的。?
为什么?因为静态成员在类的内部定义的啊
大家,既然$this是属于本身对象的,那self::是属于本身类的哈

问题:在非静态方法里可不可以访问静态成员呢?记住,这里是属性方法都可以访问到哈.
可以,使用self::这个东西。代码演示把。

<?php
	class people
	{
		static $name='cyg&lw';
		function eat()
		{
			echo self::$name;
		}
	}
	$people1=new people();
	$people1->eat();
	?>

在这里插入图片描述

<?php
	class people
	{
		static $name='cyg&lw';
		function eat()
		{
			echo self::say();
		}
		static function say()
		{
			echo "string";
		}
	}
	$people1=new people();
	$people1->eat();
	?>

在这里插入图片描述
在静态方法里面能不能访问到非静态的属性呢?

<?php
	class people
	{
		$name='cyg&lw';
		static function eat()
		{
			
			echo people::$name;
		}
	}
	people::eat();
	?>

在这里插入图片描述
在静态方法里面能不能访问到非静态的方法呢?

<?php
	class people
	{
		$name='cyg&lw';
		static function eat()
		{
			
			echo people::say();
		}
		function say()
		{
			echo "string";
		}
	}
	people::eat();
	?>

在这里插入图片描述
到此结束,拜拜。。。
记住哈,static共享的是同一个类所实例的对象的哈,

©️2020 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值