首页技术php变量的命名规则 在php哪种变量名是非法的

php变量的命名规则 在php哪种变量名是非法的

编程之家2026-05-22853次浏览

今天给各位分享php变量的命名规则的知识,其中也会对在php哪种变量名是非法的进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

php变量的命名规则 在php哪种变量名是非法的

PHP定义空变量的意义

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

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

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

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

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

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

php变量的命名规则 在php哪种变量名是非法的

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

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

变量区分大小写吗?

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

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

分别讲述吧。

php变量的命名规则 在php哪种变量名是非法的

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

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

<?php教程

$var='Jim';

$VAR='Kimi;

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

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

2.变量区分大小写吗?

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

注意,需要说明的一点是自PHP4以来,引入了引用赋值的概念,其实和多数语言的引用类似,不过我觉得最类似的是C/C++.因为它也用到了"&"符号。例如: 1<?php

2$foo='Bob';//赋值'Bob'给foo

3$bar=&$foo;//通过$bar引用.注意&符号

4$bar="My name is$bar";//修改$bar

5 echo$bar;

6 echo$foo;//$foo也修改了.

7?>和其他语言一样,只能对有变量名的变量才可以引用。

3. PHP其他重要点

预定义变量

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

需要注意的是在PHP 4.2.0以及后续版本中,PHP指令 register_globals的默认值为 off。这是 PHP的一个主要变化。让 register_globals的值为 off将影响到预定义变量集在全局范围内的有效性。例如,为了得到 DOCUMENT_ROOT的值,将必须使用$_SERVER['DOCUMENT_ROOT']代替$DOCUMENT_ROOT,又如,使用$_GET['id']来代替$id从 URL 中获取 id值,亦或使用$_ENV['HOME']来代替$HOME获取环境变量 HOME的值。

从 PHP 4.1.0开始,PHP提供了一套附加的预定数组,这些数组变量包含了来自 web服务器(如果可用),运行环境,和用户输入的数据。这些数组非常特别,它们在全局范围内自动生效,例如,在任何范围内自动生效。因此通常被称为自动全局变量(autoglobals)或者超全局变量(superglobals)。(PHP中没有用户自定义超全局变量的机制。)超全局变量罗列于下文中;而且,你也将注意到旧的预定义数组($HTTP_*_VARS)仍旧存在。自 PHP 5.0.0起,长格式的 PHP预定义变量可以通过设置 register_long_arrays来屏蔽。

下表是PHP的超全局变量:

超全局变量

描述

$GLOBALS包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键名为全局变量的名称。从 PHP 3开始存在$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数组(依然有效,但反对使用)

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

$_REQUEST经由 GET,POST和 COOKIE机制提交至脚本的变量,因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照 php.ini中的 variables_order配置指示来定义。此数组在 PHP 4.1.0之前没有直接对应的版本。参见 import_request_variables()。

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

变量的应用范围

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

1<?php

2$var=0;

3 function test($index)

4{

5$var=$var+1;

6 echo"The".$index." number is".$var."<br>";

7}

8 test(1);

9 test(2)

10?>你认为以上的代码会显示什么结果呢?

如果你认为是下面:

结果1:

The 1 number is 1

The 2 number is 2不好意思,你的结果是错误的。

其实正确的结果应该是:

结果2

The 1 number is 1

The 2 number is 1那么你从其中发现了什么呢?我们可以知道虽然第2行的代码定义在外面,但第5行的变量和它是不一样的。第5行的变量仅在这个函数里使用。进一步的,如果我想调用第一行的变量而显示结果2.代码可以如下:

1<?php

2$var=0;

3 function test($index)

4{

5 global$var;

6$var=$var+1;

7 echo"The".$index." number is".$var."<br>";

8}

9 test(1);

10 test(2)

11?>这个代码段和上面的代码段有何区别呢?注意第5行,多了一个global关键字。明白了吧。

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

代码如下:

1<?php

2$var=0;

3 function test($index)

4{

5

6$GLOBALS["var"]=$GLOBALS["var"]+1;

7 echo"The".$index." number is".$GLOBALS["var"]."<br>";

8}

9 test(1);

10 test(2)

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

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

1<?php

2 function Test()

3{

4 static$a= 0;

5 echo$a."<br>";

6$a++;

7}

8 Test();

9 Test();

10?>结果为

1

2

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

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

看看下面的例子:

1<?php

2$a="hello";

3$hello="world";

4 echo$a."".$$a;

5?>输出的结果居然是hello,world.太神奇了。$$a其实就是$hello,因为$a的值是hello。

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

常量

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

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

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

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

1<?php

2 define("CONSTANT","Hello world.");

3 echo CONSTANT;// outputs"Hello world."

4 echo Constant;// outputs"Constant" and issues a notice.

5

6 define("GREETING","Hello you.", true);

7 echo GREETING;// outputs"Hello you."

8 echo Greeting;// outputs"Hello you."

9

10?>

常量和变量不同:

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

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

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

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

常量的值只能是标量。

实例

<?php

$txt="Hello World!";

$number= 16;

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

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

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

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

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

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

<?php

//引用

$one="test";

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

//动态变量

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

$two="one";

$three="two";

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

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

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

//php中有8个类型

//4种标量: int integer

// bool boolean

// float,double,real

// string

//2种复合类型: array

// object

//2种特殊类型:资源类型 resource

//空类型 null

//整数的声明

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

$int=045;//八进制声明

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

$float=3.14E+5;//科学计数法

$float=3.14E-5;

//一下都是false的情况

$bool=false;

$bool=0;

$bool=0.000;

$bool=null;

$bool="";

$bool="";

$bool="0";

$bool=array();

//字符串的声明

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

//2.声明的字符串没有长度限制

//3.在双引号的字符串中,既可以直接解析变量,又可以直接使用转义字符(可以转义单引号本身,也可以转义转义字符"")

//4.在单引号的字符串中,不可以直接解析变量,也不可以使用转义字符

//5.在双引号中不能再使用双引号,在单引号中不能再使用单引号

//6.最好使用单引号,

$str='aaaaa';

$str="aaaa";

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

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

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

$str=<<<test

this write content......

test;

?>

什么是PHP变量

常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量)。常量默认为大小写敏感。按照惯例常量标识符总是大写的。(更多PHP知识相关推荐阅读:什么是PHP开发?PHP开发都用什么工具?)

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

注:在这里,字母是 a-z,A-Z,以及从 127到 255(0x7f-0xff)的 ASCII字符。

和 superglobals一样,常量的范围是全局的。不用管作用域就可以在脚本的任何地方访问常量。有关作用得更多信息请阅读手册中的变量范围。

语法

可以用 define()函数来定义常量。一个常量一旦被定义,就不能再改变或者取消定义。

常量只能包含标量数据(boolean,integer,float和 string)。

可以简单的通过指定其名字来取得常量的值,不要在常量前面加上$符号。如果常量名是动态的,也可以用函数 constant()来读取常量的值。用 get_defined_constants()可以获得所有已定义的常量列表。

注:常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE和$TRUE是不同的。

如果使用了一个未定义的常量,PHP假定你想要的是该常量本身的名字,如同你用字符串调用它一样(CONSTANT对应"CONSTANT")。此时将发出一个 E_NOTICE级的错误。参见手册中为什么$foo[bar]是错误的(除非你事先用 define()将 bar定义为一个常量)。如果你只想检查是否定义了某常量,用 defined()函数。

常量和变量不同:

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

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

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

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

常量的值只能是标量。

以上来自上海优就业老师进行的总结,关于上海IT培训PHP开发更多了解:网页链接

php面向对象编程书写代码规范

类命名

a)使用大写字母作为词的分隔,其他的字母均使用小写,即驼峰格式。

b)名字的首字母使用大写

c)不要使用下划线(’_')

d) interface接口最好使用大写字母I,并以Interface结尾

例如:

class NameOneTwo

class Name

interface IExampleInterface()

方法命名

a)使用大写字母作为词的分隔,其他的字母均使用小写

b)名字的首字母使用大写,声明为“private”或“protected”的,使用’_’为前缀

c)不要使用下划线(’_')

d)(与类命名一致的规则)

e)对象的访问器总是以“get”或“set”为前缀,当使用设计模式如单态模式(singleton)

类属性命名

a)属性名前缀应以属性值类型指定(具体参照变量命名规则)

b)前缀后采用与类命名一致的规则

c)私有属性采用’_’为前缀

例如:

class NameOneTwo{

public function VarAbc(){};

public function ErrorNumber(){};

public$iAge;

private$_iAge;

}

全局变量

a)全局变量应该带前缀‘g’

b)其余参照变量命名规则

例如:

global$gi_Age;

global$ga_Price

文章到此结束,如果本次分享的php变量的命名规则和在php哪种变量名是非法的的问题解决了您的问题,那么我们由衷的感到高兴!

sql和mysql的区别 mysql数据库可视化软件成品app源码下载网站?鹿源码站APP最新版本