php定义空变量的意义,PHP定义空变量的意义

2021-03-03 16:16:06 字数 6439 阅读 1811

1楼:匿名用户

php定义空变量的意义为变量用于存储值,比如数字、文本字符串或数组。

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

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

php定义空变量变量定义为在php中变量的语法格式如下:

$变量名称 = 变量的值

$name = "xiaoming"; //定义一个变量,变量明为name,变量值为“xiaoming”.

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

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

2楼:windy建建建

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

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

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

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

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

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

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

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

变量区分大小写吗?

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

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

分别讲述吧。

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

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

$var='jim';

$var='kimi;

echo "$var,$var";//输出“jim,kimi"

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

2. 变量区分大小写吗?

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

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

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 http:

//****example.***/test.

php?id=3 中获取 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

2 $var=0;

3 function test($index)

4 8 test(1);

9 test(2)

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

如果你认为是下面:

结果1:

the 1 number is 1

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

其实正确的结果应该是:

结果2the 1 number is 1

the 2 number is 1那么你从其中发现了什么呢?我们可以知道虽然第2行的**定义在外面,但第5行的变量和它是不一样的。第5行的变量仅在这个函数里使用。

进一步的,如果我想调用第一行的变量而显示结果2.**可以如下:

1

2 $var=0;

3 function test($index)

4 9 test(1);

10 test(2)

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

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

**如下:

1

2 $var=0;

3 function test($index)

4 9 test(1);

10 test(2)

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

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

1

2 function test()

3 8 test();

9 test();

10 ?> 结果为12

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

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

看看下面的例子:

1

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

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() 函数定义,而不能通过赋值语句;

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

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

常量的值只能是标量。

实例

$txt = "hello world!";

$number = 16;

?>php 是一门松散类型的语言(loosely typed language)

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

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

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

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

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

//引用

$one="test";

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

//动态变量

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

$two="one";

$three="two";

echo $three."

";//输出"two"

echo $$three."

";//输出"one"

echo $$$three."

";//输出"######"

//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=<<

js中如何判断变量未定义,js中如何判断一个变量未定义

1楼 手机用户 请检查! else 2 第二种 if window sinvoicedate else 后面这种 因为所有变量的对象都是window 所以也可以这样判断 这种做兼容时用的比较多,如ajax封装时。 js判断变量是否为undefined 2楼 新时代向前冲 可能很多朋友认为undefi...

定义变量,后头加个问号是什么意思

1楼 匿名用户 变量加问号的话,如果是数据库里面的话,代表占位符。或者网页上可以代表传递变量 js中变量后面有个问号是什么意思? 2楼 四舍 入 这个是三元操作符,它在每一种语言中的功能和语法都是一样的。 举例 int a 3 int b 5 int c a b 1 0 解释 a大于的话,c就等于1...

变压比变流比的定义分别是什么,变压比 变流比 的定义

1楼 落颜颜 变比 一般是指互感器的一次和二次之比。 变压比 是指电压互感器一次电压和二次电压之比,一般电压互感器的二次电压为100v 变流比 是指电流互感器一次电流和二次电流之比,一般电流互感器的二次电流为5a或1a 变压比 变流比 的定义 2楼 郭卫国 变比 一般是指互感器的一次和二次之比。 变...