PHP超文本预处理器

0x01 PHP 变量

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

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

PHP 变量规则:

  • 变量以 $ 符号开始,后面跟着变量的名称
  • 变量名必须以字母或者下划线字符开始
  • 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
  • 变量名不能包含空格
  • 变量名是区分大小写的($y 和 $Y 是两个不同的变量)

0x02 创建(声明)PHP 变量

PHP 没有声明变量的命令。

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

与Python类似

PHP 是一门弱类型语言

不必向 PHP 声明该变量的数据类型。
PHP 会根据变量的值,自动把变量转换为正确的数据类型。
在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。

0x03 PHP 变量作用域

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

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

  • local
  • global
  • static
  • parameter

可以在不同函数中使用相同的变量名称,因为这些函数内定义的变量名是局部变量,只作用于该函数内。

0x0301 PHP global 关键字

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$x=5;
$y=10;

function myTest()
{
global $x,$y;
$y=$x+$y;
}

myTest();
echo $y; // 输出 15
?>

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

上面的实例可以写成这样:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$x=5;
$y=10;

function myTest()
{
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}

myTest();
echo $y;
?>

0x0302 Static 作用域

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

function myTest()
{
static $x=0;
echo $x;
$x++;
}

myTest();
myTest();
myTest();

?>

0x0303 PHP echo 和 print 语句

echo 和 print 区别:

  • echo - 可以输出一个或多个字符串
  • print - 只允许输出一个字符串,返回值总为 1

提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。

0x04 PHP 数据类型

String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)

一个字符串是一串字符的序列,就像 “Hello world!”。

整数是一个没有小数的数字。

整数规则:

  • 整数必须至少有一个数字 (0-9)
  • 整数不能包含逗号或空格
  • 整数是没有小数点的
  • 整数可以是正数或负数
  • 整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。

浮点数是带小数部分的数字,或是指数形式。

布尔型可以是 TRUE 或 FALSE。

$x=true;
$y=false;

布尔型通常用于条件判断。在接下来的章节中你会学到更多关于条件控制的教程。

数组可以在一个变量中存储多个值。

在以下实例中创建了一个数组, 然后使用 PHP var_dump() 函数返回数组的数据类型和值:

1
2
3
4
<?php 
$cars=array("Volvo","BMW","Toyota");
var_dump($cars);
?>

运行结果:

1
array(3) { [0]=> string(5) "Volvo" [1]=> string(3) "BMW" [2]=> string(6) "Toyota" }

对象 数据类型也可以用于存储数据。

在 PHP 中,对象必须声明。

首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。

1
2
3
4
5
6
7
8
9
10
11
12
<?php
class Car
{
var $color;
function Car($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
?>

NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。

NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。

可以通过设置变量值为 NULL 来清空变量数据