Heim  >  Artikel  >  Backend-Entwicklung  >  PHP中的变量

PHP中的变量

WBOY
WBOYOriginal
2016-07-30 13:30:041296Durchsuche

概述

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教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn