简介

PHP全称是超文本预处理器,是一种通用开源脚本语言

可以包含文本,HTML,JavaScript和PHP代码

可以用于生成动态页面内容;创建,打开,读取,写入,关闭服务器上的内容;收集表单数据,接受发送cookie等

语法

基本语法

PHP脚本可以放在文档中的任何位置

PHP脚本是以<?PHP开始,以?>结束

在PHP版本更新后,如果只是调试运行PHP程序,可以只写<?PHP

PHP文件通常还包括了HTML标签和一些PHP脚本代码

例如,包含HTML标签的

1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html>
<body>

<h1>My first PHP page</h1>

<?php
echo "Hello World!";
?>

</body>
</html>

avatar

就会在浏览器中输出Hello World!

也可以直接进行调试

1
2
3
<?php

echo "Hello World";

avatar

注释

PHP的注释和C语言,HTML很想

1
2
3
4
5
6
7
// PHP单行注释

/*
PHP
多行
注释
*/

变量

PHP的变量以$开头

1
2
3
4
5
<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;

运行结果为

1
11

PHP变量

PHP的变量规则与C语言很像

1
2
3
4
5
变量以$符号开始,后面跟着变量名称
变量名必须以字母或者下划线字符开始
变量名只能包含字母数字字符以及下划线
变量名不能包括空格
变量名区分大小写

声明变量

1
2
3
4
<?php
$txt="Hello world!";
$x=5;
$y=10.5;

将文本值给变量时,文本值两次加上引号

这里可以看出PHP是一门弱类型语言,不用提前声明好变量的类型,直接声明赋值即可

变量作用域

1
2
3
4
5
local 局部

global 全局

static 静态

global关键字

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

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

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

可以看到x,y在函数外进行了声明,在函数中添加了global关键字,对其进行了运算操作

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

例如

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

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

myTest();
echo $y;

运行结果仍为15

static作用域

一个函数完成时,所有的变量都会被删除,但是有时候希望某个局部变量不要被删除,就需要使用static关键字

1
2
3
4
5
6
7
8
9
10
11
12
<?php
function myTest()
{
static $x=0;
echo $x;
$x++;
echo PHP_EOL; // 换行符
}

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

运行结果:

1
2
3
0
1
2

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

参数作用域

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

1
2
3
4
5
6
<?php
function myTest($x)
{
echo $x;
}
myTest(5);

运行结果为5

这个类似于是C语言的带参函数

echo和print

区别

1
2
3
4
5
echo 可以输出一个或多个字符串

print 只允许输出一个字符串,返回值总为1

echo输出的速度比print快,echo没有返回值,print返回值为1

echo语句

echo是一个语言结构,使用时可以不加上括号,也可以加上:echo或echo()

1
2
3
4
<?php
$x=5;
echo "Hello world!\n";
echo($x);

运行结果:

1
2
Hello world!
5

print语句

和echo差不多,可以带括号也可以不带

1
2
3
4
<?php
$x=5;
print "Hello world!\n";
print($x);

运行结果:

1
2
Hello world!
5

EOF使用说明

PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字符串的方法

概述

1
2
3
4
5
6
7
8
9
必须后接分号,否则编译不通过

EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。

结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。

开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号

当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法

例如

1
2
3
4
5
6
7
8
<?php
$name="runoob";
$a= <<<EOF
"abc"$name
"123"
EOF;
// 结束需要独立一行且前后不能空格
echo $a;

运行结果:
1
2
"abc"runoob
"123"

数据类型

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

字符串

一个字符串是一串字符的序列,就像”Hello World”
可以将任何文本放在单引号和双引号中

1
2
3
4
5
6
<?php
$x = "Hello world!";
echo $x;
echo "\n";
$x = 'Hello world!';
echo $x;

运行结果:

1
2
Hello world!
Hello world!

整型

整型顾名思义就是没有小数点的数字
规则

1
2
3
4
5
6
7
8
9
整型必须至少有一个数字(0-9)

整数不能包括逗号或空格

整数是没有小数点的

整数可以是正数或负数

可以以十进制,十六进制(0x开头),八进制(0开头)

var_dump()函数可以返回变量的数据类型和值:
1
2
3
4
5
6
7
8
9
<?php
$x = 5985;
var_dump($x);
$x = -345; // 负数
var_dump($x);
$x = 0x8C; // 十六进制数
var_dump($x);
$x = 047; // 八进制数
var_dump($x);

运行结果:
1
2
3
4
int(5985)
int(-345)
int(140)
int(39)

浮点型

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

1
2
3
4
5
6
7
8
9
<?php
$x = 10.365;
var_dump($x);

$x = 2.4e3;
var_dump($x);

$x = 8E-5;
var_dump($x);

运行结果:
1
2
3
float(10.365)
float(2400)
float(8.0E-5)

布尔型

布尔型只有两个类型True或False

1
2
$x=true;
$y=false;

这个用于判断,流程控制

数组

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

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

运行结果:
1
2
3
4
5
6
7
8
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
<?php
class Car
{
var $color;
function __construct($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}

NULL值

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

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

1
2
3
4
<?php
$x="Hello world!";
$x=null;
var_dump($x);

运行结果:

1
NULL

总结

1.<?PHP开始,以?>结束,这一项在有HTML代码的时候,必须要以?>结尾,调试时可以不用

2.PHP在版本更新之后,echo和print可以带括号,也可以不带括号

3.PHP是弱类型语言,不用提前声明变量的数据类型

4.global关键字使用时,会将声明的变量都添加到$GLOBALS[index]中