在本教程中,我们将学习如何使用PHP变量来存储和操作数据。
变量存储任何类型的值,例如字符串、数字、数组、对象或资源。
变量有名称和值。
可以使用下面的语法来定义变量:
$variableName
= value;
在PHP中定义变量时,必须遵循下面的命名规则:
下面的例子定义了两个整数型变量:
<?php
$a
= 10;
$b
= 20;
PHP是一种弱数据类型的编程语言。这就是说,在定义变量时,不指定其数据类型。
PHP将根据分配给变量的值来自动为变量选择适当的数据类型。此外,当你为变量赋予不同类型的值时,变量的数据类型也会发生变化。
请看下面的例子:
=
'这是一个字符串'
;
开始时,我们将$a变量定义为整数类型,因为我们将它的值赋值为20。然后,我们将一个字符串赋值给$a,因此$a的数据类型现在是string而不是integer。
PHP提供了以下数据类型:
PHP根据使用变量的上下文自动处理类型转换。在下面的例子中,PHP将字符串转换为数字,并使用数字进行计算:
'10'
// 字符串
$z
+
// $b 被转换为整数
echo
// 30
但是,出于安全原因,应该在使用变量之前将其数据类型转换为所需的数据类型。要强制PHP按照指定类型来使用变量,可以将所需数据类型的名称放在变量前面的括号中。这就是所谓的类型转换。
+ (int)
// $b 强制转换为整数
请注意,$b变量的数据类型没有改变。要更改变量的数据类型,可以使用settype()函数,稍后我们将对此进行讨论。
PHP提供了一个内置函数gettype()用于返回变量的数据类型。gettype()函数接受一个变量作为参数并返回它的数据类型。
下面的示例演示了如何使用gettype()函数:
$int
// 整数
$str
'theITroad PHP教程'
$bool
= true;
// 布尔类型
$d
= 3.14;
// 浮点数
gettype
(
),
'<br>'
) ,
要更改变量的数据类型,请使用settype()函数。
使用settype()函数时,需要传递一个要更改数据类型和所需数据类型的变量。
settype()函数将尽可能保留变量的值。
请看示例:
$f
= 20.05;
.
settype(
,
'integer'
);
// 20 整数
'string'
// '20' 字符串
'float'
// 20 浮点数
PHP提供了很多有用的函数用来测试变量的数据类型。
下表列出了这些函数:
PHP允许您引用一个变量的值,而该变量的名称存储在另一个变量中。
$foo
'bar'
$
'this is $bar'
$bar
// this is $bar
首先,我们定义了一个$foo变量并为它分配了一个字符串bar。然后,我们使用$$foo并将它分配给另一个字符串。$foo表示bar,$$foo表示$bar变量;因此,这个赋值创建了一个新变量$bar,它的名字是$foo变量的值,也就是bar。最后,我们显示了$bar变量的值。
当我们为一个变量赋值时,无论是字面量的值还是另一个变量的值,我们都说这个变量被设置了。您可以使用isset()函数来检查是否设置了变量。
// $a 没有设置
if
(isset(
)) {
'$a is set. <br/>'
}
else
{
'$a is not set. <br/>'
// 给$b 赋值
'$b is set. <br/>'
'$b is not set. <br/>'
要释放变量,可以使用unset()函数。
下面的例子演示了如何使用unset()函数销毁变量:
//
'$a is set. <br>'
'$a is not set. <br>'
unset(
// $a 不再可用
要检查变量是否为NULL,可以使用is_null()函数。
$x
= null;
is_null
) ?
'$x is null'
:
'$x is not null'
'<br />'
= 30;
要检查变量是否为空,可以使用empty()函数。如果一个变量的值等于false或它不存在,则它被认为是空的。
下面的示例演示如何使用empty()函数:
= 0;
is_empty(
'$x 为空'
'$x 不为空'
$s
''
变量的作用域(作用范围)决定了脚本的哪些部分可以访问它。定义变量的位置决定了变量的作用域。
PHP中有四种类型的变量作用域:局部、全局、静态和函数参数。
函数中定义的变量是该函数的局部变量。这就是说局部变量只能由定义它的函数中的代码访问。
function
foo()
+ 20;
return
变量$a是foo()函数中的一个局部变量。它不能在foo()函数之外被访问。
在函数外部声明的变量具有全局作用域或称为全局变量。
全局变量可以从程序的任何部分访问。但是,默认情况下,它在函数内部不可用。要在函数内部引用全局变量,需要在声明变量时使用global关键字,如下所示:
test()
global
//10
test();
PHP提供了一个系列特殊的全局变量,称为超全局变量superglobal。超全局变量提供关于PHP脚本环境的信息。超级全局变量在任何PHP脚本文件中都自动可用。
下面是PHP的超全局变量列表:
$GLOBALS 是一个包含全局变量的数组。$_SERVER 包含有关web服务器环境的信息。$_ENV 包含有关脚本环境的信息。$_GET 包含来自GET请求的信息。$_POST 包含来自POST请求的信息。$_REQUEST 包含用户的请求信息。$_SESSION 包含来自会话中注册的任何变量的信息。$_COOKIE 包含来自HTTP cookies的信息。$_FILES 包含文件上传后的信息。
静态变量在函数调用之间保留其值,并且它只能在该函数内部访问。
使用static关键字定义静态变量。例如:
set_counter()
static
$counter
++;
'<br/>'
set_counter();
// 1
// 2
// 3
函数的参数是局部的,它们只能在函数内部可见。请看以下示例:
to_html(
)
$str是to_html()函数的参数。它只在to_html()函数中可用。
原文链接:https://codingdict.com/