全球化服务

0755-82326831

获取免费方案

全部

网站建设行业资讯

网站建设常识

网站建设常见问题

SEO优化常识

网站开发常识

域名空间常识

高端网站建设

首页 > 域名空间常识 > php变量

php变量

作者: 域名空间专家

时间: 2021-12-14 15:49:20

来源:增长超人

标签: php网站开发,php建站系统,php网站建设,

一、简介

PHP 中的变量用一个美元符号后边跟变量名来表明。变量名是区别大小写的。变量名与 PHP 中其它的标签相同遵从相同的规矩。一个有用的变量名由字母或许下划线最初,后边跟上恣意数量的字母,数字,或许下划线。

留意:在此所说的字母是 a-z,A-Z,以及 ASCII 字符从 127 到 255(0x7f-0xff)。 $this是一个特别的变量,它不能被赋值。能够看出变量名中也不能有.号。

前面几课其实现已用到了变量,变量的赋值等内容。试试下面的代码吧

1

PHP 也供给了别的一种办法给变量赋值:引证赋值。这意味着新的变量简略的引证(相似于 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。

运用引证赋值,简略地将一个 & 符号加到即将赋值的变量前(源变量)。例如,下列代码片断将输出“My name is Bob”两次:

1

虽然在 PHP 中并不需求初始化变量,但对变量进行初始化是个好习惯。未初始化的变量具有其类型的默许值 – 布尔类型的变量默许值是FALSE,整形和浮点型变量默许值是零,字符串型变量默许值是空字符串或许数组变量的默许值是空数组。

依靠未初始化变量的默许值在某些状况下会有问题,例如把一个文件包括到另一个之中时碰上相同的变量名。别的把register_globals(大局变量)翻开是一个首要的安全隐患。运用未初始化的变量会宣布E_NOTICE过错,可是在向一个未初始化的数组附加单元时不会。isset()言语结构能够用来检测一个变量是否已被初始化。

二、预界说变量

预界说变量其实便是相当于一些可预见的变量,比方地址?后边的值能够运用$_GET得到,这个便是一个典型的预界说变量。

1、$GLOBALS — 引证大局效果域中可用的悉数变量。一个包括了悉数变量的大局组合数组。变量的姓名便是数组的键。(可是我觉得这个大局变量简单让代码难以了解,所以我个人不引荐咱们这么用)试试下面的代码吧

1 functiontest(){ 2 $l="我在函数里边n"; 3 echo$l; 4 echo$GLOBALS['l']; 5 6 } 7 $l="我在函数外面"; 8 echo$l."n"; 9 test();

2、$_SERVER — 服务器和履行环境信息 ,$_SERVER是一个包括了比如头信息(header)、途径(path)、以及脚本方位(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创立,或许依据不同的服务器给出的内容不相同。在$_SERVER中,你或许能够,或许不能够找到下面的这些元素。留意,假如以命令行办法运转 PHP,下面列出的元素几乎没有有用的(或是没有任何实际意义的)。

key 简介 PHP_SELF 当时履行脚本的文件名,与 document root 有关。例如,在地址为http://example.com/test.php/foo.bar的脚本中运用$_SERVER['PHP_SELF']将得到/test.php/foo.bar。 argv 传递给该脚本的参数的数组。当脚本以命令行办法运转时,argv 变量传递给程序 C 言语款式的命令行参数。当经过 GET 办法调用时,该变量包括query string。 argc 包括命令行形式下传递给该脚本的参数的数目(假如运转在命令行形式下)。 GATEWAY_INTERFACE 服务器运用的 CGI 标准的版别;例如,“CGI/1.1”。 SERVER_ADDR 当时运转脚本地点的服务器的 IP 地址。 SERVER_NAME 当时运转脚本地点的服务器的主机名。假如脚本运转于虚拟主机中,该称号是由那个虚拟主机所设置的值决议。 SERVER_SOFTWARE 服务器标识字符串,在呼应恳求时的头信息中给出。 SERVER_PROTOCOL 恳求页面时通信协议的称号和版别。例如,“HTTP/1.0”。 REQUEST_METHOD 拜访页面运用的恳求办法;例如,“GET”, “HEAD”,“POST”,“PUT”。 REQUEST_TIME 恳求开始时的时间戳。从 PHP 5.1.0 起可用。 QUERY_STRING query string(查询字符串),假如有的话,经过它进行页面拜访。 DOCUMENT_ROOT 当时运转脚本地点的文档根目录。在服务器装备文件中界说。 HTTP_ACCEPT 当时恳求头中Accept:项的内容,假如存在的话。 HTTP_ACCEPT_CHARSET 当时恳求头中Accept-Charset:项的内容,假如存在的话。例如:“iso-8859-1,*,utf-8”。 HTTP_ACCEPT_ENCODING 当时恳求头中Accept-Encoding:项的内容,假如存在的话。例如:“gzip”。 HTTP_ACCEPT_LANGUAGE 当时恳求头中Accept-Language:项的内容,假如存在的话。例如:“en”。 HTTP_CONNECTION 当时恳求头中Connection:项的内容,假如存在的话。例如:“Keep-Alive”。 HTTP_HOST 当时恳求头中Host:项的内容,假如存在的话。 HTTP_REFERER 引导用户署理到当时页的前一页的地址(假如存在)。由 user agent 设置决议。并不是一切的用户署理都会设置该项,有的还供给了修正HTTP_REFERER的功用。简言之,该值并不行信。 HTTP_USER_AGENT 当时恳求头中User-Agent:项的内容,假如存在的话。该字符串表明晰拜访该页面的用户署理的信息。一个典型的比如是:Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)。除此之外,你能够经过get_browser()来运用该值,然后定制页面输出以便习惯用户署理的功用。 HTTPS 假如脚本是经过 HTTPS 协议被拜访,则被设为一个非空的值。 REMOTE_ADDR 阅读当时页面的用户的 IP 地址。 REMOTE_HOST 阅读当时页面的用户的主机名。DNS 反向解析不依靠于用户的REMOTE_ADDR。 REMOTE_PORT 用户机器上衔接到 Web 服务器所运用的端口号。 SCRIPT_FILENAME 当时履行脚本的绝对途径。假如在命令行界面(Command Line Interface, CLI)运用相对途径履行脚本,例如file.php或../file.php,那么$_SERVER['SCRIPT_FILENAME']将包括用户指定的相对途径。 SERVER_ADMIN 该值指明晰 Apache 服务器装备文件中的 SERVER_ADMIN 参数。假如脚本运转在一个虚拟主机上,则该值是那个虚拟主机的值。 SERVER_PORT Web 服务器运用的端口。默许值为 “80”。假如运用 SSL 安全衔接,则这个值为用户设置的 HTTP 端口。 SERVER_SIGNATURE 包括了服务器版别和虚拟主机名的字符串。 PATH_TRANSLATED 当时脚本地点文件体系(非文档根目录)的根本途径。这是在服务器进行虚拟到实在途径的映像后的成果。 SCRIPT_NAME 包括当时脚本的途径。这在页面需求指向自己时十分有用。__FILE__常量包括当时脚本(例如包括文件)的完好途径和文件名。 REQUEST_URI URI 用来指定要拜访的页面。例如 “/index.html”。 PHP_AUTH_DIGEST 当作为 Apache 模块运转时,进行 HTTP Digest 认证的过程中,此变量被设置成客户端发送的“Authorization” HTTP 头内容(以便作进一步的认证操作)。 PHP_AUTH_USER 当 PHP 运转在 Apache 或 IIS(PHP 5 是 ISAPI)模块办法下,而且正在运用 HTTP 认证功用,这个变量便是用户输入的用户名。 PHP_AUTH_PW 当 PHP 运转在 Apache 或 IIS(PHP 5 是 ISAPI)模块办法下,而且正在运用 HTTP 认证功用,这个变量便是用户输入的暗码。 AUTH_TYPE 当 PHP 运转在 Apache 模块办法下,而且正在运用 HTTP 认证功用,这个变量便是认证的类型。 PATH_INFO 包括由客户端供给的、跟在实在脚本称号之后而且在查询句子(query string)之前的途径信息,假如存在的话。例如,假如当时脚本是经过 URLhttp://www.example.com/php/path_info.php/some/stuff?foo=bar被拜访,那么$_SERVER['PATH_INFO']将包括/some/stuff。 ORIG_PATH_INFO 在被 PHP 处理之前,“PATH_INFO” 的原始版别。

3、$_GET经过 URL 参数传递给当时脚本的变量的数组。即在命令行下失效。咱们在测验php那节讲过$_GET['__DEBUG__'],用法很简略。

4、$_POST经过 HTTP POST 办法传递给当时脚本的变量的数组。和$_GET办法相似,仅仅传递办法不同。

5、$_FILES经过 HTTP POST 办法上传到当时脚本的项目的数组。

6、$_REQUEST默许状况下包括了$_GET,$_POST和$_COOKIE的数组。以命令行办法运转时,将包括argv和argc信息;它们将存在于$_SERVER数组。因为$_REQUEST中的变量经过 GET,POST 和 COOKIE 输入机制传递给脚本文件,因而能够被长途用户篡改而并不行信。这个数组的项目及其次序依靠于 PHP 的variables_order指令的装备。

7、$_SESSION当时脚本可用 SESSION 变量的数组。

8、$_ENV经过环境办法传递给当时脚本的变量的数组。

这些变量被从 PHP 解析器的运转环境导入到 PHP 的大局命名空间。很多是由支撑 PHP 运转的 Shell 供给的,而且不同的体系很或许运转着不同品种的 Shell,所以不或许有一份确认的列表。请检查你的 Shell 文档来获取界说的环境变量列表。

其他环境变量包括了 CGI 变量,而不论 PHP 是以服务器模块仍是 CGI 处理器的办法运转。

9、$_COOKIE经过 HTTP Cookies 办法传递给当时脚本的变量的数组。

10、$php_errormsg$php_errormsg变量包括由 PHP 生成的最新过错信息。这个变量只在过错产生的效果域内可用,而且要求 track_errors装备项是敞开的(默许是封闭的)。

11、$HTTP_RAW_POST_DATA$HTTP_RAW_POST_DATA包括 POST 提交的原始数据。

12、$http_response_header — HTTP 呼应头

13、$argc — 传递给脚本的参数数目

14、$argv — 传递给脚本的参数数组

三、变量规模

变量的规模即它界说的上下文布景(也便是它的收效规模)。大部分的 PHP 变量只要一个独自的规模。这个独自的规模跨度相同包括了 include 和 require 引进的文件。例如:

1

这个a在b.php相同有用。任何用于函数内部的变量按缺省状况将被约束在部分函数规模内。可是能够运用global来改动有用规模。(和$GLOBALS相似,我也不引荐运用)例如:

01

变量规模的另一个重要特性是静态变量。静态变量仅在部分函数域中存在,但当程序履行脱离此效果域时,其值并不丢掉。看看下面的比如:

1 functiontest() 2 { 3 static$a= 0; 4 echo$a."n"; 5 $a++; 6 } 7 test();test();

假如在声明顶用表达式的成果对其赋值会导致解析过错。

四、可变变量

 

其实可变变量便是变量名是个变量罢了。请看代码

1

这段代码,一开始界说了一个变量$a,然后界说了一个变量$$a,其实能够了解为$hello;所以第三句和第四句都将打印出hello world;

留意:要将可变变量用于数组,有必要处理一个不置可否的问题。这便是当写下$$a[1]时,解析器需求知道是想要$a[1]作为一个变量呢,仍是想要$$a作为一个变量并取出该变量中索引为 [1] 的值。处理此问题的语法是,对第一种状况用${$a[1]},对第二种状况用${$a}[1]。

 

本文固定链接:http://www.qaforcode.net/archives/219 | 猪哥每日一贴

2022数字营销白皮书

一起聊聊您的项目?

联系我们

等一下!这里有三份资料送你~

3000+家企业都在用的工具书

  • 《企业官网建设实战指南》
  • 《SEM狙击战术》
  • 《数字营销白皮书》
免费领取

您将免费获得

  • 1

    全面诊断网站

    您将获得专家对您网站的全面诊断服务,我们不同于传统建站公司仅是提供一些通用的、浅显的建议。

  • 2

    找出可能让您错过的增长点

    我们将挖掘出有利于转化率提升的指标,还将详细说明您网站可以改善的确切地方。

  • 3

    流量查询与分析

    我们通过专业手段,提供您所在行业的流量增长趋势与流量来源分析。

  • 4

    定制方案与报价

    对您的需求深入了解后,并结合您所处行业的竞争分析结果,我们将为您量身定制一份增长方案。

获取方案

贵公司的网址是?

如何称呼您?*

您的联系方式是?*

留言

下一步

贵公司预算范围是?

贵公司的团队规模是?

目前主要的营销渠道是?

从哪里了解到我们?

免费预约

贵公司的网址是?

如何称呼您?*

您的联系方式是?*

留言

立即提交

扫描二维码

关注公众号

回复【数字营销】即可获取白皮书

book

免费获取《2023数字营销白皮书》

扫描二维码 回复【数字营销】免费获取

code

扫码获取

我们的服务已触达

全国20多个省份乃至海外

中国

深圳、上海、北京、广州、香港、成都、重庆、杭州、武汉、西安、天津、苏州、南京、郑州、长沙、沈阳、青岛、合肥、佛山、南昌、台湾、昆明、海口、厦门...

海外

美国、加拿大、新加坡、日本、韩国、俄罗斯、法国、英国、德国、意大利、澳大利亚、沙特阿拉伯、新西兰、荷兰...

合作咨询
请通过表单提交合作咨询信息,我们会尽快与您取得联系。

我们的服务已触达

全中国及海外20多个国家

中国

深圳、上海、北京、广州、香港、成都、重庆、杭州、武汉、西安、天津、苏州、南京、郑州、长沙、东莞、沈阳、青岛、合肥、佛山、山东、台湾、苏州、厦门...

海外

美国、加拿大、新加坡、日本、韩国、俄罗斯、法国、英国、德国、意大利、澳大利亚、沙特阿拉伯、新西兰、荷兰、以色列、越南...

合作咨询 0755-82326831
请通过表单提交合作咨询信息,我们会尽快与您取得联系。

获取方案

咨询

售前在线咨询

专属顾问在线解答

电话

售前电话咨询

0755-82326831

顶部