0X00 PHP
超文本预处理器
0X01 基础语法
php语言标记
- <?php ?>之间的代码就表示进入了PHP模式,在开始和结束标签之外的内容都会被PHP解析器忽略。
- php代码可以嵌入到html代码中;
PHP开始标记:<?php
代码部分
PHP结束标记:?>
变量
变量就是一个可以改变的量,php中定义一个变量必须以“$”符号开始。
<?php
$x = 1;
$y = 2;
$z = $x + $y;
echo $z;
?>
变量名命规范
- 以$开头,后面可以接英文字符;
- 严格区分大小写;
- 变量不能以数字开头,特殊字符不能出现在变量名中;
- 下划线“_”不属于特殊字符,可以作为变量开头;
- 变量名可以使用中文,但不建议使用;
- 定义变量名尽量有意义,和变量的作用相一致。
正确变量名:
$x
$_int
$demo1
$boy1girl
错误变量名:
$@x
$y#
$1a
$2@
变量的操作
= 给变量赋值
echo 输出变量名
isset() 判断一个变量是否存在
unset() 销毁变量
注释
//代码 单行注释
/*代码*/ 多行注释,“/*”和“*/”之间的内容都会被注释
单引号和双引号
- 单引号不解释变量,双引号解释变量;
- 双引号执行转义字符,双引号不转移(\n,\r,\t);
- 能使用单引号尽量不适用双引号,因为单引号效率要比双引号快;
- 如果字符串和变量一起连接的时候,可以用 “.” 号连接;
- 如果双引号里面插入单引号,单引号里面插入变量,变量会解析;
- 如果双引号里面插入变量,可以在后面插入空格或者 ”,“ 号,或者用 "{}" 包含变量,不然程序会认为这是一个整体;
<?php
$name = "辛巴";
echo ‘$name’; //输出:$name
echo "$name" //输出:辛巴
echo ‘\n’; //输出:\n
echo “\n”; //输出:[换行]
?>
变量和字符串同时输出
<?php
$name = '张三';
echo $name.'李四';
?>
输出效果:张三李四
<?php
$name = '张三';
echo "{$name}李四";
?>
输出效果:张三李四
数据类型
类型 | 分类 | 示例 |
---|---|---|
标量 | 整型(整数) | 1,2,5,666 |
浮点型(小数) | 3.14,1.1,100.01,-4.44 | |
布尔类型(真和假) | true,false | |
混合类型 | 数组(array) | [1,2,3,"abc",5,6] |
对象(object) | ||
特殊类型 | 空(null) | |
资源(resource) | 计算机上的图片、音乐、视频、网络请求等都是资源 |
强制类型转换
intval() //转换为整型
floatval() //转换为浮点数
strval() //转换为字符串
boolval() //转换为布尔值
- 空转换为整形是 ”0“;
- 空转换为浮点型变成浮点型的 ”0“;
- 空转换为字符串为空字符串'',引号间无任何内容;
- 整形如果后面有字符串,会去掉字符串只保留前面的数字;
- 浮点型后面如果有字符串,会把字符串去掉保留前面的数字;
判断数据类型常用函数
is_array() //判断数组
is_string()
is_bool()
is_float()
is_object()
is_int()
is_numeric() //判断数值
is_resource()
is_null()
is_scalar() //判断标量
gettype() //获取数据类型
var_dump() //输出值还有类型
常量
常量是程序运行不可改变的量。
常量的定义
define('常量名','常量值')
<?php
define('king','study');
echo king;
?>
注意:
- 常量不能重复定义;
- 常量定义一般使用大写字母,跟系统保持一致;
- 常量的值只能是标量;
- 常量的作用域是去全局的;
- 使用常量的时候不用加 ”$“ 符号;
- 常量不能写道字符串中;
判断常量是否被定义:
difined('常量名'); //返回1表示已定义,0表示未被定义
系统常量
__FILE__ //当前使用文件(路径+文件名)
__LINE__ //当前代码所在行的行数
__DIR__ //当前访问文件所在的目录
PHP_OS //获取当前系统信息
PHP_VERSION //获取系统的PHP版本信息
__FUNCTION__ //获取当前函数名
M_PI //圆周率
__MHTHOD__ //获取当前成员方法名
__NAMESPACE__ //获取当前命名空间名字
__TRAIT__ //获取当前TRAIT名字(多继承)
__CLASS__ //获取当前类名
数据操作符
算术运算符
+ //加
- //减
* //乘
/ //除
% //求模(取余)
++ //自增
-- //自减
赋值运算符
= //等于
-= //减等于
+= //加等于
*= //乘等于
%= //除等于
.= //字符串拼接
比较运算符
> //大于
< //小于
>= //大于等于
<= //小于等于
== //等于(只判断值)
=== //绝等于(不止判断值,还判断类型)
!= //不等于
!== //绝不等于
逻辑运算符
&& //与
|| //或
! //非
流程控制
单分支结构
if (条件)
{
真区间;
}
双分支结构
if (条件)
{
真区间;
}
else
{
假区间;
}
示例:
<?php
$num1 = 666;
$num2 = 999;
if ($num1 == $num2)
{
echo '我是小哥哥!';
}
else
{
echo '我是小姐姐!';
}
?>
//输出结果:我是小姐姐!
多分支结构
if (条件1)
{
执行语句1;
}
else if(条件2)
{
执行语句2;
}
else if(条件3)
{
执行语句3;
}
...
else
{
执行语句 n ;
}
双向分支结构
<?php
switch(条件值)
{
case 1:
echo 1;
break;
case 2:
echo 2;
break;
case 3:
echo 3;
break;
default:
echo '我是默认值!';
break;
}
?>
示例:
//掷筛子小游戏
<?php
$touzi = mt_rand(1,6); //随机生成一个1-6的随机数
echo "您的骰子是:$touzi <br />";
switch ($touzi)
{
case 1:
echo '真心话!';
break;
case 2:
echo '大冒险!';
case 3:
echo '亲一个异性!';
break;
case 4:
echo '喝一杯!';
break;
case 5:
echo '唱首歌!';
break;
case 6:
echo '跳个舞';
break;
}
?>
循环结构
for循环
for ($i=0;$i>5;$i++)
{
echo $i.'<br />';
}
while循环
$i=0;
while ($i<5)
{
echo $i.'<br />';
$i++;
}
do while循环
$i=0;
do
{
echo $i.'<br />';
$i++;
}
while ($i<5);
break和continue
break
条件符合终止循环。
continue
符合条件终止此次循环,并且继续循环,知道循环结束。
编程实战:九九乘法表
<?php
for ($m = 1;$m <= 9;$m ++)
{
for ($n=1;$n<=$m;$n++)
{
echo $n.'X'.$m.'='.$n*$m.' ';
}
echo '<br />';
}
?>
/*输出效果:
1X1=1
1X2=2 2X2=4
1X3=3 2X3=6 3X3=9
1X4=4 2X4=8 3X4=12 4X4=16
1X5=5 2X5=10 3X5=15 4X5=20 5X5=25
1X6=6 2X6=12 3X6=18 4X6=24 5X6=30 6X6=36
1X7=7 2X7=14 3X7=21 4X7=28 5X7=35 6X7=42 7X7=49
1X8=8 2X8=16 3X8=24 4X8=32 5X8=40 6X8=48 7X8=56 8X8=64
1X9=9 2X9=18 3X9=27 4X9=36 5X9=45 6X9=54 7X9=63 8X9=72 9X9=81
*/
0X02 时间
时间戳
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。
time() //时间戳函数
//显示效果:
1580629189
以可读方式读取:
<?php
$time = time();
echo date('Y-m-d H:i:s',$time);
?>
//显示效果
2020-02-02 15:42:06
设置时区
方法一:
date_default_timezone_set(); //中国即“PRC”
方法二:
修改配置文件php.ini——>date.timezone="UTC",将UTC替换为PRC。