Login
网站首页 > 文章中心 > 其它

php变量规范_局部变量命名规范

作者:小编 更新时间:2023-08-16 14:10:32 浏览量:27人看过

php变量命名问题

php里命名一个变量以$符打头,后面跟变量名称,和其他很多语言一样,变量名只能以字母、数字、下划线组成,不能包含空格、标点符号、运算符等其它符号,不能使用程序语言关键字作为变量,按照规范的来讲的话变量名称应该要精简,且有寓意.

PHP的变量名长度最长允许多少啊?

PHP变量名长度是不受限制的.

可以任意的长.

回答了把,不过建议开发时候还是采取比较容易理解和简短的名字.

PHP定义空变量的意义

变量用于存储值,比如数字、文本字符串或数组.

一旦设置了某个变量,我们就可以在脚本中重复地使用它.

PHP 中的所有变量都是以 $ 符号开始的.

在 PHP 中设置变量的正确方法是:

$var_name = value;PHP 的入门者往往会忘记在变量的前面的 $ 符号.如果那样做的话,变量将是无效的.

让我们试着创建一个存有字符串的变量,和一个存有数值的变量:

如果对于变量和常量的定义,你会注意几个方面呢?你可能会想到:

如何定义变量,它和C# 等语言有什么不同呢?

变量区分大小写吗?

PHP的变量还有其他重要的吗?

常量和变量的定义一样吗?

分别讲述吧.

①如何定义变量,它和C# 等语言有什么不同呢?

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

php教程

$var='Jim';

$VAR='Kimi;

echo "$var,$VAR";//输出"Jim,Kimi"

你可能还关心变量的命名,其实和大多数语言一样.

如 1里说的,区分大小写.

预定义变量

预定义变量在PHP是一个重要的概念. PHP 提供了大量的预定义变量.由于许多这些变量依赖于运行的服务器的版本和设置,及其它因素,所以并没有详细的说明文档.一些预定义变量在 PHP 以命令行形式运行时并不生效.

下表是PHP的超全局变量:

超全局变量

描述

$_SERVER 变量由 web 服务器设定或者直接与当前脚本的执行环境相关联.类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用).

$_GET 经由 URL 请求提交至脚本的变量.类似于旧数组 $HTTP_GET_VARS 数组(依然有效,但反对使用).

$_POST 经由 HTTP POST 方法提交至脚本的变量.类似于旧数组 $HTTP_POST_VARS 数组(依然有效,但反对使用).

$_COOKIE 经由 HTTP Cookies 方法提交至脚本的变量.类似于旧数组 $HTTP_COOKIE_VARS 数组(依然有效,但反对使用).

$_FILES 经由 HTTP POST 文件上传而提交至脚本的变量.类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用)

$_ENV 执行环境提交至脚本的变量.类似于旧数组 $HTTP_ENV_VARS 数组(依然有效,但反对使用).

$_SESSION 当前注册给脚本会话的变量.类似于旧数组 $HTTP_SESSION_VARS 数组(依然有效,但反对使用)

变量的应用范围

每个变量都有应用范围,那么PHP是怎么定义的呢?还是先看看下面代码吧:

①. ?php

①.0 ?你认为以上的代码会显示什么结果呢?

如果你认为是下面:

结果1:

The 1 number is 1

其实正确的结果应该是:

那么还有没有其他方法呢?答案是肯定的.

代码如下:

①.1 ?代码有什么特殊的吗?那就是用到了$GLOBALS这个超全局变量.

PHP也有静态变量的说法.不过静态变量一般用在函数里,只能是局部变量了.看看下面代码吧:

①.0 ? 结果为

PHP还有一个相当令人兴奋的特性:可变变量

所谓可变变量,就是一个变量的变量名可以动态的设置和使用.

看看下面的例子:

变量就这多了.下面看看常量.

常量

PHP的常量是不是前面加const呢?让我们看一看.

不是的.在PHP必须用下面的方式定义.

bool define ( string name, mixed value [, bool case_insensitive] )

name 为常量名,value为常量的值.case_insensitive]为大小写敏感.默认为敏感.例如:

①.0 ?

常量和变量不同:

常量前面没有美元符号($);

常量只能用 define() 函数定义,而不能通过赋值语句;

常量可以不用理会变量范围的规则而在任何地方定义和访问;

常量一旦定义就不能被重新定义或者取消定义;

常量的值只能是标量.

实例

php

$txt = "Hello World!";

PHP 是一门松散类型的语言(Loosely Typed Language)

在 PHP 中,不需要在设置变量之前声明该变量.

在上面的例子中,您看到了,不必向 PHP 声明该变量的数据类型.

根据变量被设置的方式,PHP 会自动地把变量转换为正确的数据类型.

在强类型的编程语言中,您必须在使用前声明变量的类型和名称.

在 PHP 中,变量会在使用时被自动声明.

//引用

$one="test";

two=$one;//相当于传地址,两个变量指向一个地址

//动态变量

$one="######";

$two="one";

$three="two";

echo $three."br";//输出"two"

echo $$three."br";//输出"one"

echo $$$three."br";//输出"######"

// bool boolean

// float,double,real

// string

// object

// 空类型 null

//整数的声明

$int=10; //十进制声明

$int=0xff;//十六进制声明

//一下都是false的情况

$bool=false;

$bool=0;

$bool=0.000;

$bool=null;

$bool="";

$bool=" ";

$bool="0";

$bool=array();

//字符串的声明

//1.单引号和双引号都可以声明字符串

$str='aaaaa';

$str="aaaa";

//定界符声明字符串,大量字符串

//test是自定义的一个字符串,后面不能有任何字符,空格也不可以

//也要以test这个自定义的字符串结束,结束前不能有任何字符

$str=test

this write content......

test;

php 变量解析

第一个问题的确需要仔细分析:

①首先,你得知道,在双引号中的字符串输出时,变量必须得用它的值取代:如$a=100;

就有"$a"="100";

②其次,php在读双引号中的内容时,一旦遇到$,就希望找到一个最可能的变量.现在看"A banana is $fruits[banana].";这一句,php顺着$往下找找到了[,[是数组索引的标志,如果在找到与之配对的]之前不出现非法字符,php很自然的就把整个式子$fruits[banana]当成了整个变量,所以这样写是对的

③与②对应的"A banana is $fruits['banana'].";错在哪应给就清楚了吧?php找到[之后,觉得这是个数组,但紧接着它又找到了',这是他不能够接受的,如果它仍旧把$fruits['banana']当做变量,就会出现变量名字里边出现非法字符'和'的错误.注意这些都是在双引号里边给以讨论的

④那为什么 "A banana is {$fruits['banana']}."; 就可以呢?因为{}的意思我们应该都了解的,用在语法里边{}就像是一个个语句岛,除了全局变量和常量,{}里边的东西和{}外边的东西基本是隔绝的,也就是说{}里边的语法是不受外边的双引号影响的.所以写法就符合平常的语法了

⑤其实{$fruits['banana']}是正确的而{$fruits[banana]}是错误的,但为什么php不报错呢?对php而言,数组的[]里边只能是字符串和int值,那么$fruits[banana]是什么呢?php里边带$的是变量,加单引号或者双引号的是字符串,那么banana会是什么呢?对了,是常量!php觉得你这里写的banana是个值可能为int或字符串的常量,所以它觉得写的挺合理的.但是你实际上并没有定义这个常量,所以肯定会出错的

至于你的第二个问题,这是php的字符串连接问题.$fruits['banana']的值是一个字符串,那么当你把它和另一个字符串"echo A banana is "接在一起的时候肯定的需要特定的符号了.一般的语言用的是◆,php用的是.

你直接打印这个字符串当然是可以的了.

怎么样?解释的够清楚吧?可以给分了吧?呵呵,打字快累死了,要劳有所得啊,还有什么问题的话联系我,我们再讨论!

要写一个PHP,定义一个变量,并设定为指定的网址

把这部分改成指定值并隐藏,就可以了.

!--li?strong网址/strong--

input?id="tougao-url"?class="input-block-level"?type="hidden"?value="http://你设置的URL"?size="100"

php全局变量和php预定义变量

仅供参考,更多,可以查看

PHP 提供了大量的预定义变量.由于许多变量依赖于运行的服务器的版本和设置,及其它因素,所以并没有详细的说明文档.一些预定义变量在 PHP 以命令行形式运行时并不生效.有关这些变量的详细列表,请参阅预定义变量一章.

Warning

如果有可用的 PHP 预定义变量那最好用,如超全局变量.

Note: 可变变量 超级全局变量不能被用作可变变量.

Note: 尽管超全局变量和 HTTP_*_VARS 同时存在.但是他们并不是同一个变量,所以改变一个的值并不会对另一个产生影响.

如果某些 variables_order 中的变量没有设定,它们的对应的 PHP 预定义数组也是空的.

PHP 超全局变量

$GLOBALS

$_SERVER

变量由 web 服务器设定或者直接与当前脚本的执行环境相关联.类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用).

$_GET

经由 URL 请求提交至脚本的变量.类似于旧数组 $HTTP_GET_VARS 数组(依然有效,但反对使用).

$_POST

经由 HTTP POST 方法提交至脚本的变量.类似于旧数组 $HTTP_POST_VARS 数组(依然有效,但反对使用).

$_COOKIE

经由 HTTP Cookies 方法提交至脚本的变量.类似于旧数组 $HTTP_COOKIE_VARS 数组(依然有效,但反对使用).

$_FILES

经由 HTTP POST 文件上传而提交至脚本的变量.类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用).详细信息请参阅 POST 方法上传.

$_ENV

执行环境提交至脚本的变量.类似于旧数组 $HTTP_ENV_VARS 数组(依然有效,但反对使用).

$_REQUEST

Caution

Note: 当运行于命令行模式时,此数组将不会包含 argv 和 argc 条目;它们已经存在于数组 $_SERVER 中.

$_SESSION

当前注册给脚本会话的变量.类似于旧数组 $HTTP_SESSION_VARS 数组(依然有效,但反对使用).

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章