PHP 变量


2021年8月23日, Learn eTutorial
4113

在本 PHP 教程中,您将学习编程语言的基本单位——变量。我们将详细讨论 PHP 中的变量是什么,如何使用示例对其进行命名、声明和初始化。

变量是什么意思?

PHP - Variables

变量是计算机中一组内存空间,可用于存储数据并为其指定唯一名称。RAM 中的每个字节数据都被分配一个唯一的地址。

如何在 PHP 中命名变量?

  • 在 PHP 中,我们在变量名前使用“$”符号来表示变量。
    $name  
    
  • PHP 中的变量只能包含字母数字(a-z, A-Z, 0-9)字符和下划线(_)。
    $name                  // Valid Variable Name
    $Age                   // Valid Variable Name
    $Check_Name            // Valid Variable Nam 
    
  • 每个变量必须以字母(a-z, A-Z)或下划线(_)开头。另一方面,数字(0-9)或特殊字符不能
    $name   // Valid Variable Name
    $_age   // Valid Variable Name
    $01Name // Invalid Variable Name
    $#Name  // Invalid Variable Name 
    
  • 与其他语言一样,变量名不能包含空格。
    $check name // Invalid Variable Name 
    
  • PHP 中的变量是区分大小写的,我们可以同时使用变量名 $name$Name,它们是两个不同的变量。我们可以在示例中看到它
    $name = "John";
    $NAME = "Doe";
    echo "First Name: $name Last Name: $NAME";
     
    
    
    First Name: John Last Name: Doe
    

如何在 PHP 中声明变量?

  • 在 PHP 中,无需在程序中使用变量之前声明它。它会根据变量的值自动分配数据类型。
  • 声明变量后,可以在整个程序中重复使用它
  • 赋值运算符(=)用于将值赋给变量

在 PHP 中为变量赋值

PHP - Variables

我们使用“=”符号为变量赋值。

语法


$variable_name = value;
 

示例


$name = "John";
echo $name;

 

输出


John

PHP 中用于构造变量的共有 8 种数据类型

数组

布尔型

双精度或浮点数

整型

NULL

对象

资源

字符串


$count   = 1;              // Variable hold an integer value;
$count   = “one”;     // Variable hold a String value;
$num      =  1.5;         // Variable hold a Float value;
$num      =  True;       // Variable hold a Boolean value;
 

我们使用内置函数 var_dump() 来打印输入变量的数据类型。

语法


var_dump(var1, var2, ...);
 

检查变量的数据类型


$name = "John";
$age = 25;
$salary = 1201.78;
var_dump($name);
var_dump($age);
var_dump($salary);
 

输出


string(4) "John"
int(25)
float(1201.78)

PHP 中的变量作用域是什么?

在 PHP 中,我们可以在程序的任何位置声明变量。变量的作用域是指程序中可以访问它的范围。换句话说,变量的作用域是变量定义和可访问的程序块。变量作用域有三种类型:

PHP - Variables
  1. 静态作用域
  2. 局部作用域
  3. 全局作用域

1)    静态作用域

PHP 的一项特性是它会删除已完成执行的变量,并将内存释放用于后续进程。即使函数已完成,我们也可能需要存储一些变量以供将来使用。因此,静态变量是变量作用域的关键组成部分。要定义一个变量为静态,只需在其名称前加上关键字 STATIC,这些变量就称为静态变量。只有局部函数才有静态变量。当函数完成/执行时,它的所有变量通常都会被删除。但是,有时我们可能不希望局部变量被销毁。我们可能需要它用于其他执行。对于这些目的,我们可能需要首先将变量声明为静态变量来实现这一点。然后,当函数再次调用时,该变量仍将保留上次调用时拥有的信息。与被指定为函数参数的变量不同,静态变量在函数退出时不会丢失其值,因为函数参数在函数退出时会被删除。它在函数再次调用时也会保留其值。值得注意的是,该变量仍然是局部变量。

静态作用域示例


function counting()
{
    static $x = 1;
    echo "Count $x \n";
    $x++;
}
counting();
counting();
counting();
 

输出


Count 1 
Count 2 
Count 3

在上面的示例中,我们可以看到变量 x 的值在第一次被定义为静态变量,并且值只分配一次,每次调用函数时,该值都不会影响程序。

2)    局部作用域

在函数内声明的变量称为函数的局部变量。局部变量只能在该函数内引用。这些局部变量的作用域仅限于声明它们的函数。因为这些变量具有局部作用域,所以它们无法在函数外部访问。在函数外部声明的同名变量与在函数内部声明的变量不同。在函数外部进行的任何赋值都被视为与函数内部的变量完全不同的变量。

局部变量示例


function check()
{
    $x = "learnetutorials.com";
    echo "You are at $x";
}
check();
echo $x;

 

输出


You are at learnetutorials.com

在上面的示例中,我们可以看到变量‘x’在函数块中声明,当它在函数中使用时,它工作正常,然后尝试在函数外部使用它时,它将不起作用,因为变量‘x’是局部变量。

3)    全局作用域

在函数外部声明的变量称为全局变量。全局变量在整个程序中都可访问。为了在函数内访问全局变量,我们必须在变量名前使用 GLOBAL 关键字。全局变量可以直接访问或在函数外部使用,而无需使用任何关键字。因此,在函数外部访问全局变量无需关键字。与局部变量不同,全局变量可以从程序中的任何位置访问。在修改全局变量之前,必须在要修改它的函数中明确地将其声明为全局。为此,我们使用 $GLOBALS 数组作为在函数内使用全局变量的另一种方法。通过在需要识别为全局的变量名前加上 GLOBAL 关键字。当您将此关键字应用于现有变量时,PHP 将使用该名称的变量。如果您尝试在函数内访问全局变量而未使用的 global 关键字,您将收到一条错误消息,指出变量未定义。

全局变量示例


$name = "Jhon Doe";
function welcome()
{
    echo "Hello! $name welcome to learnetutorials.com \n";
}
welcome();
echo "$name how are you doing?";
 

输出


Hello!  welcome to learnetutorials.com 
Jhon Doe how are you doing?

在上面的示例中,我们可以看到当变量声明在函数外部并在函数中使用时,它将不起作用,并且将被视为错误。

 使用 keyword global 的示例


$name = "Jhon Doe";

function welcome()
{
    global $name;
    echo "Hello! $name welcome to learnetutorials.com \n";
}
welcome();

 

输出


Hello! Jhon Doe welcome to learnetutorials.com 
Jhon Doe how are you doing?

在上面的示例中,我们可以看到当 global 关键字用于在函数外部定义的变量前时,它在函数块内也被接受。

PHP 变量作用域示例

PHP - Variables

在上面的示例中,我们可以看到变量‘x’在函数外部定义,我们已经了解到在函数外部定义的所有变量都是全局变量。而变量‘y’被定义为静态变量,我们可以看到 static 关键字将该变量设置为静态变量。变量‘z’和‘k’在函数块中定义,并且在函数块内部定义的所有变量都将是局部变量,只能在当前函数内部使用。我们还可以看到变量‘x’在函数内部被用作全局变量,通过在其前面使用 global 关键字,如果我们改变函数内部变量‘x’的值,那么这个值在整个程序中也会改变。