如何使用PHP静态方法与属性_PHP教程

WBOY
풀어 주다: 2016-07-13 10:33:16
원래의
741명이 탐색했습니다.

众所周知,OOP的目的就是了把一个次编写代码,复制复制再复制,继承继承再继承的合理利用每一次的工作,同时也方便代码管理。哪个环节出错了就去找哪个环节。但是有时候我们写的类,最终发现它只使用了一次,并没有生成多个的实例。这个时候再去new, 不仅影响效率,代码也显得不够简洁。

所以非常感性的php,为我们提供了一种便捷高效的方法 static 有了它以后这些统统不再是问题。

下面鄙人为大家讲讲static 的使用方法和特性。

hello world:

class hw{
    public static function hi(){
       return 'Hello World!!!';
    }
}
 
echo hw::hi();  
로그인 후 복사
class hw{
    public function hi(){
       return 'Hello World!!!';
    }
}
 
echo hw::hi();  
로그인 후 복사

从上面的例子可以看出了,使用了static和不使用static属性以后可以直接使用::方法从外面直接调用,但是为了效率和其他方面因素,还是建议使用static 来限制。

static 类内部调用方法

class foo{
 
private static function c(){
  return 'abcd';
}
 
public static function a(){
  echo self::c();
}
 
}
foo::a();  
로그인 후 복사

使用了static 关键字来限制方法是必须使用self:: 在本类内部引用,上面的例子已经将的很清楚了。

static 属性

class foo{
public static $a;
public static function a(){
  self::$a='abcd';
}
}
foo::a();
echo foo::$a;  
로그인 후 복사

我们同样可以使用static关键字来限制变量 这个时候变量不会一直保持上一次负值时候的值。

static 继承与使用

class foo{
public static $a;
public static function a(){
  return 'abcd';
}
}
class oo extends foo{
public static  function a(){
  echo '1234';
}
}
oo::a();  
로그인 후 복사

static 的继承和普通类的继承方法一样,并没有太大的区别。

class foo{
public static $a;
public static function a(){
  return 'abcd';
}
}
class oo extends foo{
public static  function aa(){
  echo parent::a();
}
}
oo::aa();  
로그인 후 복사

只是使用的时候有写区别,必须是parent::方法来引用父类的方法,并不能直接self::来使用父类的方法,如下例子,则不会显示任何值:

class foo{
public static $a;
public static function a(){
  return 'abcd';
}
}
 
class oo extends foo{
public static  function aa(){
  echo self::a();
}
}
oo::a();  
로그인 후 복사

再一个简单的例子

<?php
	class Status {
		public static $ICE = -1;
		public static $WATER = 0;
		public static $VAPOR = 1; 
	}
?>?
<?php
	$exStatus = Status::$ICE;
	if ($exStatus == Status::$ICE)
		echo "Ice";
	else
		echo "Water";
?>  
로그인 후 복사

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/752510.htmlTechArticle众所周知,OOP的目的就是了把一个次编写代码,复制复制再复制,继承继承再继承的合理利用每一次的工作,同时也方便代码管理。哪个环...
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿