您的位置:首页 > 编程语言 > PHP开发

4.PHP 教程_PHP 变量

2015-08-04 21:14 555 查看
PHP 变量

变量是用于存储信息的"容器":

<?php
$x = 5;
$y = 6;
$z =  $x + $y;
echo $z;
?>


与代数相似

x=5

y=6

z=x+y

在代数中,我们使用字母(如x),并给它赋值(如5).

从上面的表达数z=x+y,我们可以计算z的值为11.

在PHP中,这些字母被称为变量

PHP变量

与代数相似,可以给PHP变量赋予某个值(x=5)或者表达式(z=x+y).

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

PHP变量规则:

变量以$符号开始,后面跟着变量的名称

变量名必须以字母或者下划线字符开始

变量名只能包含字母数字字符以及下划线(A_z、0-9和_)

变量名不能包含空格

变量名是区分大小写的($y和$Y是连个不同的变量)

创建(声明)PHP变量

PHP没有声明变量的命令.

变量在您第一次赋值给它的时候被创建:

<?php
$txt = "Hello World!";
$x = 5;
$y = 10.5
?>


在上面的语句执行中,变量txt将保存值Hello World!,且变量x将保存值5.
注释:当您赋一个文本值给变量时,请在文本值两侧加上引号.

PHP是一门弱类型语言

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

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

在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称.

PHP变量作用域

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

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

local

global

static

parameter

局部和全局作用域

在所有函数定义的变量,拥有全局作用域,除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用global关键字.

在PHP函数内部声明的变量是局部变量,仅能在函数内部访问:

<?php
$x = 5; //全局变量
function myTest(){
$y = 10; //局部变量
echo "<p>Test variables inside the function:</p>";
echo "Variable x is:$x";
echo "<br>";
echo "Variable y is :$y";
}
myTest();
echo "<p>Test variables outside the function:<p>";
echo "Variable x is: $x";
echo "<br>";
echo "Variable y is: $y";
?>


在以上实例中myTest()函数定义了$x和$y变量.$x变量在函数外声明,所以它是全局变量,$y变量在函数内声明所以它是局部变

量.
当我们调用myTest()函数并输出两个变量的值,函数将会输出局部变量$y的值,但是不能输出$x的值,因为$x变量在函数外定义,无

法在函数内使用,如果要在一个函数中访问一个全局变量,需要使用global关键字.

然后我们在myTest()函数外输出两个变量的值,函数将会输出全局变量$x的值,但是不能输出$y的值,因为$y变量在函数中定义,

属于局部变量.

PHP global关键字

global关键字用于函数内访问全局变量.

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

<?php
$x = 5;
$y = 10;
function myTest(){
global $x,$y;
$y = $x+$y;
}
myTest();
echo $y; //输出15
?>


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

上面的实例可以写成这样

<?php
$x = 5;
$y = 10;
function myTest(){
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y;
?>


Static作用域

当一个函数完成时,它的所有变量通常都会被删除.然而,有时候您希望某个局部变量不要被删除.

要做到这一点,请在您第一次声明变量时使用static关键字:

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


然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值.

注释:该变量仍然是函数的局部变量.

参数的作用域

参数是通过调用代码将值传递给函数的局部变量.

参数是在参数列表中声明的,作为函数声明的一部分:

<?php
function myTest($x){
echo $x;
}
myTest(5);
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: