php学习笔记--2. 变量
2014-09-02 01:56
441 查看
命名规则
php变量使用一个美元符号$后面加变量名来表示。变量名是区分大小写的
变量名以字母或者下划线开头,后面跟任意数字,字母,下划线。可以使用中文来命名变量
传递方式
变量默认是传值赋值。
$a = 1;
$b = $a;
$b = 10000;
Echo$a; //
打出 1
如果想要引用赋值,必须使用 &
符号
$a = 1;
$b =&$a;
$b = 1000;
Echo$a;//打出1000
变量的默认值
php可以不初始化变量。但是推荐定义变量时给它一个初始值
未初始化的变量具有其类型的默认值 -布尔类型的变量默认值是 FALSE,整形和浮点型变量默认值是零,字符串型变量(例如用于 echo 中)默认值是空字符串以及数组变量的默认值是空数组。
可以看出,static
和 global 都是属于引用传递。
可变变量,多个美元符号
$a='hello';
$$a="world";//相当于$hello="world"
echo$a." ".$hello;//与 $a." ".$$a
一样
打出hello world
需要注意,如果在数组,或者对象中,需要按情况添加大括号
比如:
当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为
[1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。
所以上例中最好写为
Echo$a." ".${$a} ;
增加易读性。
<?php
class foo {
var $bar = 'I am bar.';
var $arr = array('I am A.', 'I am B.', 'I am C.');
var $r = 'I am r.';
}
$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo $foo->$bar . "\n";//相当于$foo->bar
echo $foo->$baz[1] . "\n";//先取出$baz的第二个元素,就是bar,所以相当于$foo->bar
$start = 'b';
$end = 'ar';
echo $foo->{$start . $end} . "\n";//先拼接花括号内的字串为bar,所以相当于$foo->bar
$arr = 'arr';
echo $foo->$arr[1] . "\n";//先取出arr的第二个元素,就是r,所以相当于$foo->r
echo $foo->{$arr}[1] . "\n";//有大括号,相当于$foo->arr中的第二个元素,也就是I
am B
?>
以上例程会输出:
I am bar.
I am bar.
I am bar.
I am r.
I am B.
php变量使用一个美元符号$后面加变量名来表示。变量名是区分大小写的
变量名以字母或者下划线开头,后面跟任意数字,字母,下划线。可以使用中文来命名变量
传递方式
变量默认是传值赋值。
$a = 1;
$b = $a;
$b = 10000;
Echo$a; //
打出 1
如果想要引用赋值,必须使用 &
符号
$a = 1;
$b =&$a;
$b = 1000;
Echo$a;//打出1000
变量的默认值
php可以不初始化变量。但是推荐定义变量时给它一个初始值
未初始化的变量具有其类型的默认值 -布尔类型的变量默认值是 FALSE,整形和浮点型变量默认值是零,字符串型变量(例如用于 echo 中)默认值是空字符串以及数组变量的默认值是空数组。
变量的作用域 $a=100; // 全局变量 function test(){ $a=10000; //局部变量 } test(); echo $a;//打出100 | |||||
$a=100;//全局变量 function test(){ global $a;//声明使用全局变量 $a=10000; } test(); echo $a;//打出10000 | |||||
$a=100; function test(){ $GLOBALS['a'] = 10000; } test(); echo $a;//打出10000 | |||||
static静态变量 static关键字: function test() { static $count = 0; $count++; echo $count." "; if ($count < 10) { test(); } $count--; echo $count." "; } test(); 打印结果为1 2 3 4 5 6 7 8 9 10 9 8 7 6 5 4 3 2 1 0 | |||
global关键字: $count = 0; function test() { global $count; $count++; echo $count." "; if ($count < 10) { test(); } $count--; echo $count." "; } test(); 打印结果为1 2 3 4 5 6 7 8 9 10 9 8 7 6 5 4 3 2 1 0 | |||
和 global 都是属于引用传递。
可变变量,多个美元符号
$a='hello';
$$a="world";//相当于$hello="world"
echo$a." ".$hello;//与 $a." ".$$a
一样
打出hello world
需要注意,如果在数组,或者对象中,需要按情况添加大括号
比如:
当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为
[1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。
所以上例中最好写为
Echo$a." ".${$a} ;
增加易读性。
<?php
class foo {
var $bar = 'I am bar.';
var $arr = array('I am A.', 'I am B.', 'I am C.');
var $r = 'I am r.';
}
$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo $foo->$bar . "\n";//相当于$foo->bar
echo $foo->$baz[1] . "\n";//先取出$baz的第二个元素,就是bar,所以相当于$foo->bar
$start = 'b';
$end = 'ar';
echo $foo->{$start . $end} . "\n";//先拼接花括号内的字串为bar,所以相当于$foo->bar
$arr = 'arr';
echo $foo->$arr[1] . "\n";//先取出arr的第二个元素,就是r,所以相当于$foo->r
echo $foo->{$arr}[1] . "\n";//有大括号,相当于$foo->arr中的第二个元素,也就是I
am B
?>
以上例程会输出:
I am bar.
I am bar.
I am bar.
I am r.
I am B.
相关文章推荐
- PHP之变量、常量学习笔记
- PHP学习笔记:环境变量
- PHP学习笔记--Php预定义超全局变量$_GET
- php学习笔记7--服务器变量 $_SERVER 详解
- php——学习笔记,怪异的变量作用域以及静态变量作用域
- PHP学习笔记3 - 代码重用、函数、变量
- 我的php学习笔记(二十五)PHP模板引擎Smarty的变量操作符
- 【小白笔记】PHP学习之路 (21) --对象 魔术方法、变量 序列化
- PHP学习笔记【24】--PHP超全局变量,$_GET,$_POST,$_SERVER
- php学习笔记--全局变量,超全局变量
- PHP之变量、常量学习笔记
- LAMP兄弟连PHP课程学习笔记 第二天 PHP中使用变量
- php学习笔记(三十七)smarty中的变量调节器使用
- php学习笔记:第二节--php的变量
- PHP学习笔记--有关php中的变量
- LAMP兄弟连PHP课程学习笔记 第二天 数据类型和变量使用
- php学习笔记(一)变量的声明与使用
- php学习笔记(三十五)smarty模板中使用变量的三种方式
- php——学习笔记,预定义变量
- php——学习笔记,变量声明以及3种赋值方式