PHP中的变量
来源:互联网 发布:联盟挂机赚钱软件 编辑:程序博客网 时间:2024/06/03 18:47
概述
PHP 中的变量用一个美元符号后面跟变量名来表示。
变量名是区分大小写的。
一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。
$this 是一个特殊的变量,它不能被赋值。
变量默认总是传值赋值。如果需要引用赋值,使用&
只有有名字的变量才可以引用赋值
$foo = 25;$bar = &$foo; // 合法的赋值$bar = &(24 * 7); // 非法; 引用没有名字的表达式
虽然在 PHP 中并不需要初始化变量,但对变量进行初始化是个好习惯。未初始化的变量具有其类型的默认值 - 布尔类型的变量默认值是 FALSE,整形和浮点型变量默认值是零,字符串型变量(例如用于 echo 中)默认值是空字符串以及数组变量的默认值是空数组。
预定义变量
超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量 $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 — 传递给脚本的参数数组
PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行global $variable
就可以访问它们。
变量作用域
全局变量在函数中自动无效
<?php$a = 1; /* global scope */function Test(){ echo $a; /* reference to local scope variable */}Test();?>
PHP 中全局变量在函数中使用时必须声明为 global
<?php$a = 1;$b = 2;function Sum(){ global $a, $b; $b = $a + $b;}Sum();echo $b;?>
在全局范围内访问变量的第二个办法,是用特殊的 PHP 自定义 $GLOBALS
数组
<?php$a = 1;$b = 2;function Sum(){ $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];}Sum();echo $b;?>
静态变量
变量范围的另一个重要特性是静态变量(static variable)。静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。
<?phpfunction test(){ static $a = 0; echo $a; $a++;}for ($i = 0; $i < 10; $i++) { test();} // 0123456789?>
可变变量
一个变量的变量名可以动态的设置和使用
$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
1 0
- PHP语法中的变量
- php中的SERVER变量
- php中的SERVER变量
- php中的SERVER变量
- php中的SERVER变量
- php中的SERVER变量
- php中的SERVER变量
- php中的SERVER变量
- PHP 中的变量
- php中的SERVER变量
- php中的SERVER变量
- php中的SERVER变量
- php中的变量
- php中的变量函数
- php中的静态变量
- PHP中的变量
- PHP中的可变变量
- php中的变量详解
- Ubuntu中安装zlib
- KVO
- lintCode-给出若干闭合区间,合并所有重叠的部分。
- hdu5410CRB and His Birthday 多重背包
- 对称加密和非对称加密介绍和区别
- PHP中的变量
- 【C/C++】面向对象的基本概念
- 查找算法之线性表查找
- rsyncd配置示例,
- C++中引用(&)的用法和应用实例===引用和多态的关系!!!!!!!!!!!!!!!!!
- 【面试ing】腾讯模拟笔试
- 精通Hibernate——Hibernate使用触发器需要注意的两点
- Android稳定性
- main方法为何为public static void