PHP 变量
变量被用作我们存储信息的“容器”。
$txt = "Hello world!";
与代数类似,可以给 PHP 变量赋予某个值($x=5)或者表达式($z=$x+$y)。
变量可以是很短的名称(如 $x 和 $y)或者更具描述性的名称(如 $age、$carname、$totalvolume)。
PHP 变量规则:
- 变量以 $ 符号开始,后面跟着变量的名称
- 变量名必须以字母或者下划线字符开始
- 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
- 变量名不能包含空格
- 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
<?php
$txt="Hello World";
$x=5;
$y=10.5;
echo $txt;
//输出内容 Hello World;
?>
PHP 是一门弱类型语言
在上面的实例中,我们注意到,不必向 PHP 声明该变量的数据类型。
PHP 会根据变量的值,自动把变量转换为正确的数据类型。
在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。
php常量
常量是一个简单值的标识符。该值在脚本中不能改变。
一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
注意: 常量在整个脚本中都可以使用。
设置 PHP 常量
设置常量,使用 define() 函数,函数语法如下:
define(string constant_name, mixed value, case_sensitive = true)
该函数有三个参数:
- constant_name:必选参数,常量名称,即标志符。
- value:必选参数,常量的值。
- case_sensitive:可选参数,指定是否大小写敏感,设定为 true 表示不敏感。
以下实例我们创建一个 区分大小写的常量, 常量值为 "Welcome to php":
<?php
define("GREETING","Welcome to php");
echo GREETING;
?>
以下实例我们创建一个 不区分大小写的常量, 常量值为 "Welcome to php"
<?php
define("GREETING","Welcome to php",true);
echo GREETING;
?>
在常数名称前不需要美元符号($);
数据类型
变量可以存储各种数据类型。 PHP支持的数据类型:String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。
PHP 字符串
一个字符串是一串字符的序列,就像 "Hello world!"。
你可以将任何文本放在单引号和双引号中:
<?php
$x="Hello World";
echo $x;
echo "<br>";
$y="Hello World"
echo $y;
?>
你可以使用点 . 连接运算符将两个字符串连接在一起。 例如:echo $x1.$x2;
PHP 整型
整数是一个没有小数的数字。
整数规则:
- 整数必须至少有一个数字 (0-9)
- 整数不能包含逗号或空格
- 整数是没有小数点的
- 整数可以是正数或负数
- 整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。
在以下实例中我们将测试不同的数字。
<?php
$x = 1314;
var_dump($x);
echo "<br>";
$x = -996; // negative number
var_dump($x);
echo "<br>";
$x = 0x8C; // hexadecimal number
var_dump($x);
echo "<br>";
$x = 047; // octal number
var_dump($x);
?>
在PHP中使用 var_dump() 函数可以返回变量的数据类型和值
php数据类型
PHP 浮点型
浮点数是带小数部分的数字,或是指数形式。
在以下实例中我们将测试不同的数字。
<?php
$x = 3.1415;
var_dump($x);
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);
?>
PHP 布尔型
布尔型可以是 true 或 false。
<?php
$x = true;
$y = false;
?>
布尔值通常用于条件判断;
注意: 在PHP中, null、true、false不区分大小写, 所以True,TRUE,true是一样的, 不过建议统一使用小写true
PHP 数组
数组可以在一个变量中存储多个值。
在以下实例中创建了一个数组:
<?php
$cars = array("audi","bmw","benz");
var_dump($cars);
?>
PHP 对象
对象数据类型也可以用于存储数据。
在 PHP 中,对象必须声明。
首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。
然后我们在类中定义数据类型,然后在实例化的类中使用数据类型:
<?php
class Car{
var $color;
function Car($color="green"){
$this->color=$color;
}
function what_color(){
return $this->color;
}
}
?>
PHP关键字this就是指向当前对象实例的指针,不指向任何其他对象或类。
PHP NULL 值
NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。
NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。
<?php
$x = "Hello World";
$x = null;
var_dump($x);
?>
可以通过设置变量值为 NULL 来清空变量数据
变量的作用域
PHP 变量作用域
变量的作用域是脚本中变量可被引用/使用的部分。
PHP 有四种不同的变量作用域:
- local
- global
- static
- parameter
局部和全局作用域
在所有函数外部定义的变量,拥有全局作用域。
除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问:
<?php
$x = 5;
function myTest(){
$y = 10; // 局部变量
echo "<p>测试函数内变量</p>";
echo "变量 x is: $x";
echo "<br>";
echo "变量 y is: $y";
echo "<br>";
global $x;
echo "使用global关键字 x is: $x";
}
myTest()
echo "<p>测试函数外变量</p>";
echo "变量 x is: $x";
echo "<br>";
echo "变量 y is: $y";
?>
global 关键字
PHP global 关键字
global 关键字用于函数内访问全局变量。
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:
<?php
$x = 5;
$y = 10;
function myTest(){
global $x,$y;
$y = $x + $y;
}
myTest(); // run function
echo $y; // output the new value for variable $y
?>
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++;
}
echo myTest(); //output 0
echo myTest(); //output 1
echo myTest(); //output 2
?>
然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值。
注释:该变量仍然是函数的局部变量。
可变变量
使用PHP,你可以使用一个变量来指定另一个变量的名称。
所以,一个变量变量将另一个变量的值作为它的名称。
例如:
<?php
$a = "hello";
$hello = "Hi";
echo $$a; //output 'Hi'
?>
$$a是使用另一个变量$a的值作为其名称的变量。 $a的值等于“hello”。结果变量是$hello,它保存值“Hi!”。