PHP 静态变量和静态方法

2024-09-05 19:32
文章标签 php 变量 静态 静态方法

本文主要是介绍PHP 静态变量和静态方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PHP静态变量
静态变量(也叫类变量)

静态的变量的基本用法
1.在类中定义静态变量形式:
[访问修饰符] static $变量名;
例;  //public static $nums=0;
2.如何访问静态变量
如果在类中访问  有两种方法    self::$静态变量名  ,  类名::$静态变量名
如果在类外访问: 有一种方法    类名::$静态变量名

例程:
提出一个问题:
说,有一群小孩在玩堆雪人,不时有新的小孩加入,
请问如何知道现在共有多少人在玩?请使用面向
对象的思想,编写程序解决

<?php
class Child
{public $name;//这里定义并初始化一个静态变量 $numspublic static $nums=0;public static $i=1;//构造函数function __construct($name){                      $this->name=$name;} //静态方法public  function join_game(){//self::$nums 使用静态变量//self::$nums+=1;  或Child::$nums+=1;echo Child::$i.".".$this->name."加入堆雪人游戏!<br>";Child::$i++;}
}
//创建三个小孩
$child1=new Child("李逵");
$child1->join_game();
$child2=new Child("张飞");
$child2->join_game();
$child3=new Child("唐僧");
$child3->join_game();
$child4=new Child("八戒");
$child4->join_game();
//看看有多少人参加了游戏
echo "<br/> 共有--".child::$nums."--个人参加了游戏!";
?>


静态方法(又叫类方法)
其形式如下:
[访问修饰符] static  function 方法名(){}
例;  //public static function enter_school($ifree){}
需求: 当我们操作静态变量的时候,我们可以考虑使用静态方法,比如统计所有学生交的学费

在我们编程中,我们往往使用静态方法去操作静态变量.

使用静态方法不需要创建对象,可以直接访问该静态方法

2.如何访问静态方法:
如果在类中访问  有两种方法    self::静态方法名  ,  类名::静态方法名
如果在类外访问: 有两种方法    类名::静态方法名  ,  对象名->类方法名
静态方法的特点
1.静态方法只能操作静态变量
2.静态方法不能操作非静态变量.
这里请注意 : 普通的成员方法,既可以操作非静态变量,也可以操作静态变量 */

<?php
class student
{public $name;//这里定义并初始化一个静态变量 $numspublic static $free=0;//public static $i=1;//构造函数function __construct($name,$ifree){                      $this->name=$name;echo "<br>";echo $this->name."入学了,要交学费:".$ifree."元<br>";} //静态方法,新生入学,上交学费public static function enter_school($ifree){self::$free+=$ifree;	}//获取学费public static function getfree(){return  self::$free;}	
}
//静态方法不需要像普通成员方法一样要创建对象才可调用,可在不创建对象的情况下调用静态方法
//student::enter_school(10000);
//创建学生对象
$student1=new student("小明",1000);
//通过对象名调用静态方法
$student1->enter_school(1000);
//通过类名来调用静态方法
//student::enter_school(1000);
$student2=new student("小东",200);
$student2->enter_school(2000);
$student3=new student("小亮",3000);
$student3->enter_school(3000);echo "共收取学费".$student3->getfree()."元!<br>";
//echo "共收取学费".student::getfree()."元!<br>";
?>

这篇关于PHP 静态变量和静态方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1139862

相关文章

变量与命名

引言         在前两个课时中,我们已经了解了 Python 程序的基本结构,学习了如何正确地使用缩进来组织代码,并且知道了注释的重要性。现在我们将进一步深入到 Python 编程的核心——变量与命名。变量是我们存储数据的主要方式,而合理的命名则有助于提高代码的可读性和可维护性。 变量的概念与使用         在 Python 中,变量是一种用来存储数据值的标识符。创建变量很简单,

019、JOptionPane类的常用静态方法详解

目录 JOptionPane类的常用静态方法详解 1. showInputDialog()方法 1.1基本用法 1.2带有默认值的输入框 1.3带有选项的输入对话框 1.4自定义图标的输入对话框 2. showConfirmDialog()方法 2.1基本用法 2.2自定义按钮和图标 2.3带有自定义组件的确认对话框 3. showMessageDialog()方法 3.1

Thymeleaf:生成静态文件及异常处理java.lang.NoClassDefFoundError: ognl/PropertyAccessor

我们需要引入包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>sp

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们

php中json_decode()和json_encode()

1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 参数 json

如何将文件夹里的PHP代码放到一个文件里

find ./dir -name "*.php" -exec 'cat' {} \; > dir.out

PHP抓取网站图片脚本

方法一: <?phpheader("Content-type:image/jpeg"); class download_image{function read_url($str) { $file=fopen($str,"r");$result = ''; while(!feof($file)) { $result.=fgets($file,9999); } fclose($file); re

PHP防止SQL注入详解及防范

SQL 注入是PHP应用中最常见的漏洞之一。事实上令人惊奇的是,开发者要同时犯两个错误才会引发一个SQL注入漏洞。 一个是没有对输入的数据进行过滤(过滤输入),还有一个是没有对发送到数据库的数据进行转义(转义输出)。这两个重要的步骤缺一不可,需要同时加以特别关注以减少程序错误。 对于攻击者来说,进行SQL注入攻击需要思考和试验,对数据库方案进行有根有据的推理非常有必要(当然假设攻击者看不到你的

PHP防止SQL注入的方法(2)

如果用户输入的是直接插入到一个SQL语句中的查询,应用程序会很容易受到SQL注入,例如下面的例子: $unsafe_variable = $_POST['user_input'];mysql_query("INSERT INTO table (column) VALUES ('" . $unsafe_variable . "')"); 这是因为用户可以输入类似VALUE”); DROP TA

PHP防止SQL注入的方法(1)

(1)mysql_real_escape_string – 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 使用方法如下: $sql = "select count(*) as ctr from users where username ='".mysql_real_escape_string($username)."' and password='". mysql_r