PHP基础-(变量,常量,表达式)

本文深入探讨PHP中的变量初始化、引用、范围、静态及可变变量,同时讲解了超全局变量的使用,并介绍了常量定义及表达式的构成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

变量–常量–表达式

变量
初始化变量

PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。

变量名与 PHP 中其它的标签一样遵循相同的规则。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。按照正常的正则表达式,它将被表述为:‘[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*’。

<?php $foo = 'Bob'; // 将 'Bob' 赋给 $foo $bar = &$foo; // 通过 $bar 引用 $foo $bar = "My name is $bar"; // 修改 $bar 变量 echo $bar; echo $foo; // $foo 的值也被修改 ?>

引用变量

PHP 也提供了另外一种方式给变量赋值:引用赋值。这意味着新的变量简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。

变量范围
大部分的 PHP 变量只有一个单独的范围。这个单独的范围跨度同样包含了 include 和 require 引入的文件。

global 超全局标量类似于$_SERVER

在函数中声明了全局变量 $a 和 $b 之后,对任一变量的所有引用都会指向其全局版本。对于一个函数能够声明的全局变量的最大个数,PHP 没有限制。

static 静态变量

变量范围的另一个重要特性是静态变量(static variable)。静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。

<?php function test() { static $a = 0; echo $a; $a++; } ?>

//变量 $a 仅在第一次调用 test() 函数时被初始化,之后每次调用 test() 函数都会输出 $a 的值并加一。

静态变量也提供了一种处理递归函数的方法。递归函数是一种调用自己的函数。写递归函数时要小心,因为可能会无穷递归下去。必须确保有充分的方法来中止递归。

可变变量

就是说,一个变量的变量名可以动态的设置和使用。一个普通的变量通过声明来设置

<?php $a = 'hello'; $$a = 'world'; //$a 的内容是“hello”并且 $hello 的内容是“world”。 //echo "$a ${$a}"; = echo "$a $hello"; ?>

超全局变量
$GLOBALS — 引用全局作用域中可用的全部变量

$_SERVER

一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。这也就意味着大量的此类变量都会在» CGI 1.1 规范中说明,所以应该仔细研究一下。

echo $_SERVER[‘SERVER_NAME’]; // localhost
echo $_SERVER[‘HTTP_HOST’]; // localhost
echo $_SERVER[‘PHP_SELF’]; // /PHPDemo/demo.php
echo $_SERVER[‘SCRIPT_NAME’]; // /PHPDemo/demo.php
echo $_SERVER[‘HTTP_REFERER’]; // http://localhost/PHPDemo/
echo $_SERVER[‘HTTP_USER_AGENT’]; // Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
$_SERVER[‘REMOTE_ADDR’] 浏览当前页面的用户的 IP 地址
$_SERVER[‘REMOTE_HOST’] 浏览当前页面的用户的主机名
$_SERVER[‘REMOTE_PORT’] 用户机器上连接到 Web 服务器所使用的端口号
$_SERVER[‘SERVER_ADDR’] 当前运行脚本所在的服务器的 IP 地址
$_SERVER[‘SERVER_NAME’] 当前运行脚本所在的服务器的主机名
$_SERVER[‘SERVER_PORT’] 当前运行脚本所在的服务器的端口号
$_SERVER[‘REQUERT_METHOD’] 访问页面使用的请求方法
$_SERVER[‘REQUERT_TIME’] 请求开始时的时间戳
$_SERVER[‘REQUEST_URI’] URI 用来指定要访问的页面
$_SERVER[‘QUERY_STRING’] query string(查询字符串),如果有的话,通过它进行页面访问。
$_SERVER[‘SCRIPT_FILENAME’] 当前执行脚本的绝对路径。
$_SERVER[‘HTTP_HOST’] 当前访问页面的域名
//当前访问页面的地址 $_SERVER[‘HTTP_HOST’]. $_SERVER[‘REQUEST_URI’]

$_GET

PHP $_GET 广泛用于收集提交 method=”get” 的 HTML 表单后的表单数据。

$_POST

PHP $_POST 广泛用于收集提交 method=”post” 的 HTML 表单后的表单数据。

$_FILES

存储各种与上传文件有关的信息

<?php echo $_FILES["myFile"]["name"] . "
"; // 头像.png echo $_FILES["myFile"]["size"] . "
"; // 142344 echo $_FILES["myFile"]["tmp_name"] . "
"; // D:\wamp64\tmp\phpFDC5.tmp echo $_FILES["myFile"]["type"] . "
"; // image/png echo $_FILES['myFile']['error'] . "
"; // 0 ?>

$_COOKIE

将用户的会话数据存储在客户端浏览器

<?php setcookie('test', '', time() -1); ob_start(); // 打开输出控制缓冲 print_r($_COOKIE); $content = ob_get_contents(); // 复制缓冲区内容到$content中 $content = str_replace(" ", ' ', $content); ob_clean(); // 清空(擦掉)输出缓冲区 header("content-type:text/html; charset=utf-8"); echo '当前的Cookie为:
'; echo nl2br($content); // nl2br 在字符串所有新行之前插入 HTML 换行标记
?>

$_SESSION

将用户的会话数据存储在服务端

<?php session_start(); // 创建一个 session $_SESSION['sessionName'] = 'sessionValue'; echo "session_id:" . session_id() . "
"; // 显示当前的session_id echo $_SESSION['sessionName']; // 读取 session 的值 unset($_SESSION['sessionName']); //销毁一个session var_dump($_SESSION); ?>

$_REQUEST 用于收集 HTML 表单提交的数据。 method=”GET” 和 method=”POST” 都适应

$_ENV

PHP中的$_ENV是一个包含服务器端环境变量的数组。

常量
可以用 define() 函数来定义常量

常量名和其它任何 PHP 标签遵循同样的命名规则。合法的常量名以字母或下划线开始,后面跟着任何字母,数字或下划线。用正则表达式是这样表达的:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*。

define(“CONSTANT”, “Hello world.”);

魔术常量

PHP 向它运行的任何脚本提供了大量的预定义常量。不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。

LINE 文件中的当前行号。

FILE 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,FILE 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。

DIR 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(FILE)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增) =

FUNCTION 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。

CLASS 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 CLASS 对 trait 也起作用。当用在 trait 方法中时,CLASS 是调用 trait 方法的类的名字。

TRAIT Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。

METHOD 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

NAMESPACE 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。

表达式
最基本的表达式形式是常量和变量

因为赋值操作的顺序是由右到左的,也可以这么写“$b = $a =5”。

HP 和多数其它语言的用户应该比较熟悉变量 ++ 和变量 — 符号写做“++ v a r i a b l e ” , 求 增 加 后 的 值 ( P H P 在 读 取 变 量 的 值 之 前 , 增 加 变 量 的 值 , 因 而 称 之 为 “ 前 递 增 ” ) 。 后 递 增 , 写 做 “ variable”,求增加后的值(PHP 在读取变量的值之前,增加变量的值,因而称之为“前递增”)。后递增,写做“ variablePHPvariable++”,求变量未递增之前的原始值(PHP 在读取变量的值之后,增加变量的值,因而叫做“后递增”)。

一个常用到表达式类型是比较表达式。这些表达式求值 FALSE 或 TRUE。支持 >(大于),>=(大于等于),==(等于),!=(不等于),<(小于),<= (小于等于)。PHP 还支持全等运算符 =(值和类型均相同)和非全等运算符 !(值或者类型不同)。这些表达式都是在条件判断语句,比如,if 语句中最常用的。

三元条件运算符$first ? $second : $third

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值