search
Homephp教程php手册如何使用PHP静态方法与属性

众所周知,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";
?>  
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor