IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 【PHP】常量、变量 -> 正文阅读

[PHP知识库]【PHP】常量、变量

PHP常量

常量,即值不变的量。常量被定义后,在脚本(PHP文件)的其他任何地方都不能改变。

定义方式

PHP中使用 define() 方法来定义常量。

//语法格式:
define(string constant_name, mixed value, case_sensitive = false);
//case_sensitive:大小写是否敏感,默认为false

获取常量值的方式

获取常量值有两种方式:

  1. 使用常量名直接获取
  2. 使用函数 constant() 获取

两者效果一样(都可以获取到某个已定义常量的值),但是使用函数可以 动态 输出不同的常量。

constant()函数

//语法
mixed constant(string const_name);
//const_name:要获取值的常量的名称,也可以是存储常量名的变量
//获取成功=>返回常量的值
//获取失败=>返回常量未定义(报错)

使用常量时,不能在常量名前添加$ 符号,不然会将常量转换成新的未定义变量使用,会导致报错。

判断常量是否定义

判断一个常量是否定义,使用函数 defined()

//语法
bool defined(string constant_name); //返回true | false

预定义常量

PHP中可以使用 预定义常量 来获取PHP中的信息。

常量名称类型说明
__FILE__默认常量指PHP文件的名称及其所在路径
__LINE__默认常量指PHP程序的行数
__DIR__默认常量指PHP文件所在目录
__CLASS__类的名称(V 4.3.0)返回类的名称
__FUNCION__函数名称(V 4.3.0)返回该函数被定义时的名称
__METHOD__方法的名称(V 5.0.0)返回类的方法的名称
PHP_VERSION内建常量指当前PHP版本
PHP_OS内建常量指当前PHP解析器的操作系统的名称
TRUE真值(true)
FALSE假值(false)
NULL空值(null)
E_ERROR指最近的错误之处
E_WARNING指最近的警告之处
E_PARSE指解析语法有潜在问题之处
E_NOTICE指发生不同寻常的提示,但是不一定是错误处

魔术常量

指的是PHP预定常量中的,以双下划线开头双下划线结尾的那几个常量,它们的值会随在脚本中的位置不同而改变。一共有8个(还有两个是__TRAIT__、__NAMESPACE__)。

echo __FILE__; //E:\WebProject\PHP_Study\first_day\demo1.php
echo '<br/>';
echo __LINE__; //4
echo '<br/>';
echo __DIR__; //E:\WebProject\PHP_Study\first_day
echo '<br>';
class test{
	function _test(){
		echo '类名为:'  . __CLASS__;//类名为:test
		echo '<br />';
		echo  '函数名为:' . __FUNCTION__;//函数名为:_test
		echo '<br />';
		echo  '方法名为:' . __METHOD__;//方法名为:test::_test
	}
}

$a = new test();//实例化
$a->_test();//调用方法

调试常量

预定义常量最后那几个以E+下划线开头的常量是用来调试的,需要搭配函数 error_reporting() 来使用。
error_reporting()函数
规定报告哪个错误,该函数设置当前脚本的错误报告级别,返回旧的错误报告级别。(报告级别,即错误代号,是数字)
在这里插入图片描述

//语法格式
error_reporting(report_level);
//report_level	可选。规定当前脚本的错误报告级别。值数字和常量名都能接受,但是,考虑未来的 PHP 版本的兼容性,推荐使用常量名。

//Disable error reporting
error_reporting(0);

//Report runtime errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

//Report all errors
error_reporting(E_ALL);

PHP变量

变量是指在程序执行过程中数值可以变化的量。变量通过一个名字(变量名)来标识的。系统为程序中的每一个变量分配一个存储单元,变量名实质上就是计算机内存单元的命名。因此,借助变量名即可访问内存中的数据。

变量声明

PHP4之后,使用变量前无需声明,只需要直接为变量赋值即可。

命名规范

PHP中的变量名,以 \$+标识符 来表示。标识符由字母、下划线、数字组成,并且不能以数字开头,且区分大小写。

$a1 = 1;
$_a1 = 1;
$A = 1;

变量赋值

变量赋值,指的是给变量赋予一个具体的数据值。有两大种赋值方法:

  1. 直接赋值
  2. 间接赋值

直接赋值

字符串和数字类型的变量的赋值,可以通过 = 来实现。

$name = 'Maccx';

间接赋值

间接赋值分为两种:

  1. 变量间赋值
  2. 引用赋值

变量间赋值

赋值之后的两个变量,使用各自的内存,互不干扰。(点两瓶百威,各喝各的)

$name_A = 'Maccx';
$name_B = $name_A;//变量间赋值
$name_A = 'Deeing';
echo $name_A;//'Deeing'
echo $name_B;//'Maccx'

引用赋值

用不同的名字访问同一个变量内容,当改变其中一个变量的时候,另一个也跟着变。使用 & 符号表示引用。(点一瓶百威,两根吸管一起喝)

$a = 1;
$b = & $a;//引用赋值
$b = 2;
echo $a;//输出2

引用和复制的区别:
复制=>将原变量内容复制下来,开辟一个新的空间来保存。
引用=>给变量的内容再多起一个名字。(鲁迅、周树人)

变量类别

  1. 局部变量
  2. 全局变量
  3. 静态变量
  4. 可变变量
  5. 预定义变量

变量作用域

变量须在有效范围内使用,如果变量超出有效范围,则变量失去了其意义。(广州的羊城通不能在别的省使用,因为羊城通的有效范围就是广州。)

局部变量

在函数内部定义的变量,叫做该函数的局部变量。其作用域就是所在函数的内部。

function test(){
	$num = 1000;//定义一个局部变量,在函数test内部可以正常访问
	echo $num;//输出1000
}
test();
echo "<br/>";
//在函数外部却没有这个变量
var_dump(isset($num));//输出false,不存在该变量

在这里插入图片描述
这是因为,一般变量会在函数调用结束后即刻销毁,其存储的数据值也会被清除,所在用的空间也会被释放。

全局变量

被定义在所有函数之外的变量,其作用域是整个PHP文件(除了用户自定义的函数)。如果希望在自定义函数内部也可以使用全局变量,则要在全局变量前使用 global 关键字对变量进行声明。

$global_var = '我是全局变量';

function test1(){
	echo $global_var.'<br/>';//示警,说变量未定义,说明在函数内部无法访问全局变量
	return __FUNCTION__.'<br/>';
}

function test2(){
	return __FUNCTION__.'<br/>';
}

function test3(){
	return __FUNCTION__.'<br/>';
}
//.....假设下面还有很多函数
function use_global(){
	global $global_var; //声明全局变量
	echo $global_var;
	return __FUNCTION__.'<br/>';
}

use_global();
test1();

在这里插入图片描述

静态变量

能够在函数调用结束后保留其数据值,当再次调用函数时(回到其作用域),又可以继续使用上一次的值。

静态变量和局部变量的区别就是,局部变量在函数调用结束后立刻被销毁,静态变量则不会。

使用静态变量时,使用 static 关键字来声明。

function use_static_var(){
	static $num = 0;//声明静态变量
	$n = 0;//声明局部变量
	$num++;
	$n++;
	return '[静态变量:'.$num.' 局部变量:'.$n.']<br/>';
}

echo use_static_var();
echo use_static_var();
echo use_static_var();

在这里插入图片描述

可变变量

一种独特的变量,它允许动态改变一个变量的名称。其工作原理是 该变量的名称由另一个变量的值来确定。 实现过程就是在变量前再多加一个$符号。

$a = '我是a变量';
$b = 'a';//b变量存储着a变量的标识符(变量名)
echo $$b;//输出可变变量

在这里插入图片描述

预定义变量(超级全局变量)

超级全局变量,在一个脚本的全部作用域中可用。

名称说明
$GLOBALS$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
$_SERVER$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。
$_REQUEST用于收集HTML表单提交的数据。
$_POST$_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method=“post”。
$_GET$_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method=“get”。$_GET 也可以收集URL中发送的数据。

详细的使用方法可以查阅菜鸟教程。

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 07:27:14  更:2021-07-28 07:28:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:30:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码