一、定义
PHP 脚本在服务器上执行,然后向浏览器发送回纯 HTML 结果。
二、基本语法
<?php
echo "Hello World!";
?>
注意事项
- PHP 语句以分号结尾(;)
- PHP 代码块的最后一行不必使用分号
1.注释
PHP有三种注释方式
<!DOCTYPE html>
<html>
<body>
<?php
// 这是单行注释
# 这也是单行注释
/*
这是多行注释块
它横跨了
多行
*/
?>
</body>
</html>
2.大小写敏感
- 所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感
- 所有变量都对大小写敏感
3.变量
1.PHP 没有创建变量的命令
2. 变量命名规则
- 变量以 $ 符号开头,其后是变量的名称
- 变量名称必须以字母或下划线开头
- 变量名称不能以数字开头
- 变量名称对大小写敏感(
$y
与$Y
是两个不同的变量)
3.PHP 有三种不同的变量作用域:local(局部)global(全局)static(静态)
- 函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
- 函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
在函数内部访问外部变量的方法
//使用 global 关键词
<?php
$x=5;
$y=10;
function myTest() {
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>
//PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。
<?php
$x=5;
$y=10;
function myTest() {
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y; // 输出 15
?>
4.输出语句echo与print
语法
<?php
$a='hello ';
$b='php world!';
echo $a,$b,'<br />';//echo 可以用逗号分隔字符串变量来显示
print $a.$b.'<br />';//而print不能使用逗号,只能用点号分隔,
?>
区别
- echo 命令和print命令相同,没有区别
- echo 函数和print函数有区别
- echo() 无返回值,与echo命令相同
- print() 有返回值,成功,返1,false,返0
5.运算符(仅记异于JS)
符号 | 名称 | 例子 | 解释 |
---|---|---|---|
串接 | |||
. | 串接 | $txt1 = "Hello" $txt2 = $txt1 . " world!" | 现在 $txt2 包含 “Hello world!” |
.= | 串接赋值 | $txt1 = "Hello" $txt1 .= " world!" | 现在 $txt1 包含 “Hello world!” |
比较 | |||
<> | 不等于 | $x <> $y" | 如果 $x 不等于 $y ,则返回 true。 |
逻辑 | |||
and | 与 | $x and $y | 如果 $x 和 $y 都为 true,则返回 true。 |
or | 或 | $x or $y | 如果 $x 和 $y 至少有一个为 true,则返回 true。 |
xor | 异或 | $x xor $y | 如果 $x 和 $y 有且仅有一个为 true,则返回 true。 |
&& | 与 | $x && $y | 如果 $x 和 $y 都为 true,则返回 true。 |
|| | 或 | $x || $y | 如果 $x 和 $y 至少有一个为 true,则返回 true。 |
! | 非 | !$x | 如果 $x 不为 true,则返回 true。 |
数组运算符 | |||
+ | 联合 | $x + $y | $x 和 $y 的联合(但不覆盖重复的键,相同键保留第一个) |
== | 相等 | $x == $y | 如果 $x 和 $y 拥有相同的键/值对,则返回 true。 |
=== | 全等 | $x === $y | 如果 $x 和 $y 拥有相同的键/值对,且顺序相同类型相同,则返回 true。 |
!= | 不相等 | $x != $y | 如果 $x 不等于 $y ,则返回 true。 |
<> | 不相等 | $x <> $y | 如果 $x 不等于 $y ,则返回 true。 |
!== | 不全等 | $x !== $y | 如果 $x 与 $y 完全不同,则返回 true。 |
6.判断与循环
判断:
- if…else…语句
- switch语句
循环:
- for循环
- foreach循环
foreach循环示例
<?php
$colors = array("red","green","blue","yellow");
foreach ($colors as $value) {
echo "$value <br>";
}
?>
//输出 red 、 green 、 blue 、 yellow
7.引用
PHP引用有两种方式:include
与 require
include 和 require 语句是相同的,除了错误处理方面:
- require 会生成致命错误(E_COMPILE_ERROR)并停止脚本
- include 只生成警告(E_WARNING),并且脚本会继续
语法:
include 'filename'
或
require 'filename'
8.超全局变量
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
$GLOBALS — 引用全局作用域中可用的全部变量
<?php
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
PHP $_SERVER
$_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息。
元素 | 描述 |
---|---|
$_SERVER[‘PHP_SELF’] | 返回当前执行脚本的文件名。 |
$_SERVER[‘GATEWAY_INTERFACE’] | 返回服务器使用的 CGI 规范的版本。 |
$_SERVER[‘SERVER_ADDR’] | 返回当前运行脚本所在的服务器的 IP 地址。 |
$_SERVER[‘SERVER_NAME’] | 返回当前运行脚本所在的服务器的主机名(比如 www.w3school.com.cn)。 |
$_SERVER[‘SERVER_SOFTWARE’] | 返回服务器标识字符串(比如 Apache/2.2.24)。 |
$_SERVER[‘SERVER_PROTOCOL’] | 返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。 |
$_SERVER[‘REQUEST_METHOD’] | 返回访问页面使用的请求方法(例如 POST)。 |
$_SERVER[‘REQUEST_TIME’] | 返回请求开始时的时间戳(例如 1577687494)。 |
$_SERVER[‘QUERY_STRING’] | 返回查询字符串,如果是通过查询字符串访问此页面。 |
$_SERVER[‘HTTP_ACCEPT’] | 返回来自当前请求的请求头。 |
$_SERVER[‘HTTP_ACCEPT_CHARSET’] | 返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1) |
$_SERVER[‘HTTP_HOST’] | 返回来自当前请求的 Host 头。 |
$_SERVER[‘HTTP_REFERER’] | 返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。 |
$_SERVER[‘HTTPS’] | 是否通过安全 HTTP 协议查询脚本。 |
$_SERVER[‘REMOTE_ADDR’] | 返回浏览当前页面的用户的 IP 地址。 |
$_SERVER[‘REMOTE_HOST’] | 返回浏览当前页面的用户的主机名。 |
$_SERVER[‘REMOTE_PORT’] | 返回用户机器上连接到 Web 服务器所使用的端口号。 |
$_SERVER[‘SCRIPT_FILENAME’] | 返回当前执行脚本的绝对路径。 |
$_SERVER[‘SERVER_ADMIN’] | 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。 |
$_SERVER[‘SERVER_PORT’] | Web 服务器使用的端口。默认值为 “80”。 |
$_SERVER[‘SERVER_SIGNATURE’] | 返回服务器版本和虚拟主机名。 |
$_SERVER[‘PATH_TRANSLATED’] | 当前脚本所在文件系统(非文档根目录)的基本路径。 |
$_SERVER[‘SCRIPT_NAME’] | 返回当前脚本的路径。 |
$_SERVER[‘SCRIPT_URI’] | 返回当前页面的 URI。 |
PHP $_REQUEST
PHP $_REQUEST 用于收集 HTML 表单提交的数据。
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
$name = $_REQUEST['fname'];
echo $name;
?>
</body>
</html>
三、数据类型
1.字符串函数
PHP strlen() 函数
strlen() 函数返回字符串的长度,以字符计。
<?php
echo strlen("Hello world!");
?>
//结果输出12(多个连续的空格不会被看作同一个)
PHP strpos() 函数
strpos() 函数用于检索字符串内指定的字符或文本。
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。
<?php
echo strpos("Hello world!","world");
?>
//返回 6
2.常量及设置常量
- 常量是单个值的标识符(名称)。在脚本中无法改变该值。
- 有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。
与变量不同,常量贯穿整个脚本是自动全局的。
设置常量函数 define()
- 首个参数定义常量的名称
- 第二个参数定义常量的值
- 可选的第三个参数规定常量名是否对大小写不敏感。默认是 false。
<?php
define("PAI", "3.14", true);
echo pai;
?>
//创建一个对大小写不敏感的常量
3.数组
PHP有三种数组形式:
- 索引数组 - 带有数字索引的数组
- 关联数组 - 带有指定键的数组
- 多维数组 - 包含一个或多个数组的数组
数组相关函数
- array() 用于创建数组
- count() 用于得出数组长度
- sort() - 以升序对数组排序
- rsort() - 以降序对数组排序
- asort() - 根据值,以升序对关联数组进行排序
- ksort() - 根据键,以升序对关联数组进行排序
- arsort() - 根据值,以降序对关联数组进行排序
- krsort() - 根据键,以降序对关联数组进行排序
关联数组的创建与循环
<?php
//关联数组使用foreach循环
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
多维数组的创建
$cars = array
(
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
四、功能函数
1.日期函数
PHP Date() 函数
语法:date(format,timestamp)
- PHP Date() 函数把时间戳格式化为更易读的日期和时间。
format格式:
- d - 表示月里的某天(01-31)
- m - 表示月(01-12)
- Y - 表示年(四位数)
- h - 带有首位零的 12 小时小时格式
- i - 带有首位零的分钟
- s - 带有首位零的秒(00 -59)
- a - 小写的午前和午后(am 或 pm)
- 1 - 表示周里的某天
- 其他字符,比如 “/”, “.” 或 “-” 也可被插入字符中,以增加其他格式
<?php
//不传第二个参数,默认是目前的时间。
echo "今天是 " . date("Y/m/d") ;
?>
PHP mktime()
mktime() 函数返回日期的 Unix 时间戳。Unix 时间戳包含 Unix 纪元(1970 年 1 月 1 日 00:00:00 GMT)与指定时间之间的秒数。
语法:mktime(hour,minute,second,month,day,year)
2.JSON加码解码函数
函数 | 描述 |
---|---|
json_encode | 对变量进行 JSON 编码 |
json_decode | 对 JSON 格式的字符串进行解码,转换为 PHP 变量 |
json_last_error | 返回最后发生的错误 |
json_encode()将 PHP 数组转换为 JSON 格式数据
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
//{"a":1,"b":2,"c":3,"d":4,"e":5}
PHP json_decode() 函数用于对 JSON 格式的字符串进行解码,并转换为 PHP 变量
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>