W3C中文教程
全球最大最新的中文 Web 技术教程
HTML CSS SQL PHP COLORS MYSQL BOOTSTRAP
 

PHP 变量



变量是存储信息的“容器”。


创建(声明)PHP变量

在PHP中,变量以$符号开头,后跟变量名:

Example

<?php
$txt = "Hello world!";
$x = 5;
$y = 10.5;
?>
运行实例 »

上述语句执行后,变量$txt的设置为Hello World!,变量$x的值设置为5,变量$y的值设置为10.5。

注意: 如果您为变量赋的值是文本,请在文本值上加上引号(单引号要比双引号的效率高)。

注意: PHP 没有创建变量的命令,变量会在首次为其赋值时被创建。

变量是用于存储数据的容器。


PHP 变量

变量可以是很短的名称(如 x 和 y)或者更具描述性的名称(如 age、carname、totalvolume)。

PHP变量规则:

  • 变量以 $ 符号开始,后面跟着变量的名称
  • 变量名必须以字母或者下划线字符开始
  • 变量名称不能以数字开头
  • 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
  • 变量名称对大小写敏感($age 与 $AGE 是两个不同的变量)

记住PHP变量名称是区分大小写的!


输出变量

PHP echo 语句经常用于将数据输出到屏幕上。

下面的实例将演示如何输出文本和变量:

Example

<?php
$txt = "W3Schools.wang";
echo "I love $txt!";
?>
运行实例 »

下面的实例与上面的实例具有相同的输出:

Example

<?php
$txt = "W3Schools.wang";
echo "I love " . $txt . "!";
?>
运行实例 »

下面的实例将输出两个变量的和:

Example

<?php
$x = 5;
$y = 4;
echo $x + $y;
?>
运行实例 »

注意: 您将在下一章中学习到更多关于echo语句以及如何输出数据


PHP 是一门弱类型语言

在上面的实例中,我们注意到,不必向 PHP 声明该变量的数据类型。

PHP 会根据变量的值,自动把变量转换为正确的数据类型。

在诸如 C 和 C++ 以及 Java 之类的语言中,开发人员必须在使用变量之前声明它的名称和类型。


PHP 变量作用域

在 PHP 中,可以在脚本的任意位置对变量进行声明。

变量的作用域是脚本中变量可被引用/使用的部分。

PHP 有三种不同的变量作用域:

  • local(局部)
  • global(全局)
  • static(静态)

Local 和 Global 作用域

函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。

Example

<?php
$x = 5; // global scope

function myTest() {
    // using x inside this function will generate an error
    echo "<p>Variable x inside function is: $x</p>";
}
myTest();

echo "<p>Variable x outside function is: $x</p>";
?>
运行实例 »

函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。:

Example

<?php
function myTest() {
    $x = 5; // local scope
    echo "<p>Variable x inside function is: $x</p>";
}
myTest();

// using x outside the function will generate an error
echo "<p>Variable x outside function is: $x</p>";
?>
运行实例 »

你可以在不同函数中使用相同的变量名称,因为这些函数内定义的变量名是局部变量,只作用于该函数内。


PHP global 关键字

global 关键词用于访问函数内的全局变量。

在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:

Example

<?php
$x = 5;
$y = 10;

function myTest() {
    global $x, $y;
    $y = $x + $y;
}

myTest();
echo $y; // outputs 15
?>
运行实例 »

PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。

上面的实例可以写成这样:

Example

<?php
$x = 5;
$y = 10;

function myTest() {
    $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}

myTest();
echo $y; // outputs 15
?>
运行实例 »

PHP static 关键字

通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。

要完成这一点,请在您首次声明变量时使用 static 关键字:

Example

<?php
function myTest() {
    static $x = 0;
    echo $x;
    $x++;
}

myTest();
myTest();
myTest();
?>
运行实例 »

然后,每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息。

注意: 该变量仍然是函数的局部变量。