Maison  >  Article  >  développement back-end  >  PHP中的变量

PHP中的变量

WBOY
WBOYoriginal
2016-07-30 13:30:041298parcourir

概述

PHP 中的变量用一个美元符号后面跟变量名来表示。

变量名是区分大小写的。

一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。

$this 是一个特殊的变量,它不能被赋值。

变量默认总是传值赋值。如果需要引用赋值,使用&
只有有名字的变量才可以引用赋值

<code>$foo = 25;
$bar = &$foo;      // 合法的赋值
$bar = &(24 * 7);  // 非法; 引用没有名字的表达式
</code>

虽然在 PHP 中并不需要初始化变量,但对变量进行初始化是个好习惯。未初始化的变量具有其类型的默认值 - 布尔类型的变量默认值是 FALSE,整形和浮点型变量默认值是零,字符串型变量(例如用于 echo 中)默认值是空字符串以及数组变量的默认值是空数组。


预定义变量

<code>超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量
    $GLOBALS — 引用全局作用域中可用的全部变量
    $_SERVER — 服务器和执行环境信息
    $_GET — HTTP GET 变量
    $_POST — HTTP POST 变量
    $_FILES — HTTP 文件上传变量
    $_REQUEST — HTTP Request 变量
    $_SESSION — Session 变量
    $_ENV — 环境变量
    $_COOKIE — HTTP Cookies
$php_errormsg — 前一个错误信息
$HTTP_RAW_POST_DATA — 原生POST数据
$http_response_header — HTTP 响应头
$argc — 传递给脚本的参数数目
$argv — 传递给脚本的参数数组
</code>

PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。


变量作用域

全局变量在函数中自动无效

<code><?php $a = 1; /* global scope */

function Test()
{
    echo $a; /* reference to local scope variable */
}

Test();
?>
</code>

PHP 中全局变量在函数中使用时必须声明为 global

<code><?php $a = 1;
$b = 2;

function Sum()
{
    global $a, $b;

    $b = $a + $b;
}

Sum();
echo $b;
?>
</code>

在全局范围内访问变量的第二个办法,是用特殊的 PHP 自定义 $GLOBALS 数组

<code><?php $a = 1;
$b = 2;

function Sum()
{
    $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}

Sum();
echo $b;
?>
</code>

静态变量

变量范围的另一个重要特性是静态变量(static variable)。静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。

<code><?php function test()
{
    static $a = 0;
    echo $a;
    $a++;
}

for ($i = 0; $i < 10; $i++) {
    test();
} // 0123456789

?>
</code>

可变变量

一个变量的变量名可以动态的设置和使用

<code>$Bar = "a";
$Foo = "Bar";
$World = "Foo";
$Hello = "World";
$a = "Hello";

$a; //Returns Hello
$$a; //Returns World
	$$$a; //Returns Foo
$$$$a; //Returns Bar
$$$$$a; //Returns a
</code>

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了PHP中的变量,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn