1. 在".php
“文件中html直接输出,开始标记”<?php
",结束标记"?>
",标记之间的内容会进行解析处理。
2. 输出当前日期<script>document.write(new Date());</script>
3. 循环
<?php
for($i = 0; $i < 4; $i++)
echo "$i ###### $i <br>";
?>
----------------------------------
Output results for:
0 ###### 0
1 ###### 1
2 ###### 2
3 ###### 3
4. php语言标记风格
属性|推荐与否
–|
<?php ?>
|推荐
<? ?>
|不推荐,短风格
<?=$var ?>
|不推荐,短风格
<% %>
|不推荐,asp风格
<script language="php"> </script>
|不常用
禁止短风格与asp风格的方法
步骤1. 在"php.ini"文件中
short_open_tag=on
asp_tags=on
关闭为off
5. 指令分隔符"分号"
语句分为两种:
1. 功能执行语句(内容语句 $i = 0; echo $i;)
后面一定要加分号。
2. 结构定义语句(循环语句 for(;;){} while(true){})
后面一定不要加分号。
6. 注释
属性 | - |
---|---|
// | 单行注释 |
/**/ | 多行注释 |
# | 脚本注释 |
/** */ | 文档注释 |
7. 包含指令
<?php
//当前php文件包含one.php文件的内容
require "one.php";
?>
被包含的文件(one.php)中,不能有结束标记"?>",否则会报错;
在结束标记"?>"之后,不能有多余的空格。
8. 空白符
空格、tab键、换行符、回车符等等。
9. 数据类型
9.1. 整型
- 10进制、8进制、16进制
9.2. 布尔型
9.2.1 自动类型转换
假|真
–|-
boolean=false;|true
int=0;|1
string=‘0’|‘1’(非0即可)
float=0.0;|0.1(只要有非0数字,都为真)
空字符串|非空
空数组|非空
NULL|非NULL
res=fopen(“test.txt”,“r”);|(使用r方式打开一个存在的文件)
9.3. 字符串
方式 |
---|
$A=‘你’; |
$B=“我”; |
下面的代码是定界符的使用: |
//在PHP定界符中的任何特殊字符都不需要转义
$zjf = <<<ABC
先
<br>换行
<h1>H1</h1>&
ABC;
echo $zjf;
双引号和单引号的区别
- 双引号会解析变量,单引号会原样输出。
- 双引号中输出变量时与后面的字符串用空格或者!隔开,否则输出错误。
- 在双引号中,将变量或者字符串用{}括起来。
- “/n”:回车;"/t":“缩进”;(仅限双引号使用)
- “”":转义字符;此时输出"。(单、双引号都可以使用)
- 双引号执行效率没有双引号效率高,因为双引号会解析变量。
- 定界符中可以有单双引号,引号中还可以有变量名,也可以转义\t、\n等。
9.4. 浮点(double、float)
不要用浮点型数据用来比较大小,数据不精确。(例如8,其实内部值是7.99999…,所以不要用来比较大小!)
$b = 2.0;
10. var_dump()函数
//作用:输出数据的类型、长度以及值。
$a = 1;
//输出int(1)
var_dump($a);
$b = 2.0;
//输出float(2.0)或者double(2.0);
var_dump($b);
11. if…[else…][else if…]语句
//(1)
if(0==1){
$a = 11;
echo $a;
}else if(1==2){
$a = 12;
echo $a;
}else{
echo "else";
}
//(2)
if(0==0)
echo "1";
else
echo "0";
12. NULL
$e = null;
var_dump($e);
//var_dump($e2);//会报错
$e3 = 1;
unset($e3);
//var_dump($e3);//会报错
13. unset()销毁变量函数
$a=1;
unset($a);
14. empty()是否为空函数
$a = null;
if(empty($a)){
echo "null";
else
echo "非null";
15. isset()判断多个值是否为空函数
$a=null;
$b=1;
if(isset($a,$b))
echo '$a与$b均为null才为true';
else
echo '$a与$b中,只要有一个不为null,则为false;';
16. 对象
- 是复合类型。(该类型中同时可以有字符串、整型、浮点型、布尔型等,多种类型组合起来的一个单独的类型。)
- 使用var_dump()函数映射此类变量时,结果为Object()。
17. 数组 - 是复合类型。
- var_dump()映射为array();
$a = array(1,2,3,"4");
var_dump($a);
//输出array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> string(2) "44" }
//[0]下标 int(1) 类型(值)
18. 资源resource()
19. 数据类型的查看和判断
$a = 1.2;
//输出类型-double
getType($a);
//输出类型(值)-double(1.2)
var_dump($a);
$a2 = "你好啊";
//输出类型(长度) 值-string(9) 你好啊
var_dump($a2);
判断数据类型
函数|类型
-|
is_int()|整型
is_bool()|布尔
is_float()|单精度浮点
is_string()|字符串
is_array()|数组
is_Object()|对象
is_null()|空
is_resource()|资源
is_scalar()|标量(值就是标量)
is_numeric()|数值类型(用于判断该字符串是否是数字)
is_callable(‘var_dump’)|函数
is_types()|类型
- 标量:整型、浮点型、布尔型、字符串
- 混合类型:数组、对象
- 特殊:空、资源、回调(callback)
20. 自动类型转换
原类型|自动转换的类型
-|
布尔|整型
布尔|浮点型
字符串|整型
字符串|浮点型
//只要字符串中有数字即可参与正常运算
//布尔为true会自动转换为整型1或者浮点型0.1
//布尔为false会自动转换为整型0或者浮点型0.0
21. 强制类型转换
- 函数:intval()、floatval()、strval()
- 在变量前加括号,括号内写类型
$g = 1.2;
$g1 = (int)$g;
$g2 = $g;
//输出 1
echo $g1;
echo "<br>";
//输出1.2
echo $g2;
- setType(变量,类型)直接改变变量本身
- 空转为整型会为整型的0;
- 空转为浮点会为浮点的0;
- 空转为字符串会为空字符串
- 浮点的123.0转为字符串会为字符串的123
- 浮点的123.2转为字符串会为字符串的123.2
- 浮点即使小数再大,都会舍掉小数点后面的值
- 如果字符串转为整型,如果数值在前面,会将前面的值拿出来作为整型的转换值
- settype(变量,类型)等于unset()一个变量
-
目
标
变
量
=
(
类
型
)
目标变量=(类型)
目标变量=(类型)操作变量,只会改变目标变量的类型,不会改变原变量的类型,settype是改变原值
22. 常量 - define(常量名,常量值(值只能是标量(字符串、整型、浮点型、布尔这四种)))
- array() 数组不能为常量值
//声明一个常量,名为my,值为data
define('MY','data');
//输出:我的MY
echo "我的MY";
//输出:我的data
echo "我的".MY;
23. 内置的常量
名|含义
-|
LINE|当前所在行
FILE|当前文件在服务器的路径
FUNCTION|当前函数名
CLASS|当前类名
METHOD|当前成员方法名
PHP_OS|当前运行PHP的操作系统
PHP_VERSION|当前PHP版本
TRAIT|trait的名字 PHP5.4之后才有
DIR|文件所在的目录
NAMESPACE|当前命名空间的名称
24. 变变量
$a = "b";
$b = "c";
//输出:c
echo $$a;
//执行步骤
//1. $ ($a)
//2. $ b
//3. $b 的值为 c
25. 外部变量
html代码
<form action="data1.php" method="get">
username: <input type="text" name="username" >
<br />
<input type="submit" text="提交">
</form>
data1.php代码
<?php
echo "form中使用get方法传输数据,使用".'$_GET'."方法获取数据<br>";
$username = $_GET['username'];
echo $username."<br>";
如果form使用的post方法,在php中可以使用
P
O
S
T
方
法
获
取
数
据
f
o
r
m
中
无
论
使
用
g
e
t
方
法
,
还
是
p
o
s
t
方
法
,
都
可
以
用
_POST方法获取数据 form中无论使用get方法,还是post方法,都可以用
POST方法获取数据form中无论使用get方法,还是post方法,都可以用_REQUEST方法获取数据
26. php页面编码
//方式 1
header("Content-type: text/html; charset=utf-8");
//方式 2
//将php文件的编码修改为utf-8(使用记事本打开文件,另存为,下面有编码选项)
27. 参数的引用
变量的引用
$a = 10;
$b = $a;
$b = 100;
//输出:100-100
echo $a."-".$b;
//$a和$b在`$b = $a;`时,使其共用一个存储空间
函数的应用
$a = 10;
function test($s){
$s = 100;
echo $s+$s;
}
//输出:200
test($a);
//输出:100
echo $a;
//调用了函数以后,$s和$a共用一个存储空间
28. 停止符
exit();
29. 递归
function mm($s){
echo $s;
if($s-1>0){
echo "<br>";
mm($s-1);
}else{
echo "<br>结束";
}
}
mm(3);
//输出:
3
2
1
结束
30. 静态变量
静态变量:static $a = 0;
function mm1(){
$a = 0;
echo $a++."<br>";
};
function mm2(){
static $a = 0;
echo $a++."<br>";
};
for($i = 0;$i<10;$i++){
mm1();
};
echo "mm1()函数结束<br>";
for($i = 0;$i<10;$i++){
mm2();
};
echo "mm2()函数结束";
//输出:
0
0
0
0
0
0
0
0
0
0
mm1()函数结束
0
1
2
3
4
5
6
7
8
9
mm2()函数结束
31. 系统内置函数
copy(文件1,文件2);
if(copy("copy1.php","copy2.php")){
echo "复制成功";
}else{
echo "复制失败";
}
**返回值:int,&KaTeX parse error: Expected 'EOF', got '&' at position 61: …_unshift(array &̲array,mixed $value[,mixed …])`
$a = array(1,2);
array_unshift($a,'11','22','00');
//输出:Array ( [0] => 11 [1] => 22 [2] => 00 [3] => 1 [4] => 2 )
print_r($a);
将字母改为大写 strtoupper(变量)
array_walk
$h = array('a'=>'aa','b'=>'bb');
function printArray($key,$value){
echo $key.'---'.$value."<br>";
}
array_walk($h,'printArray');
//输出:
aa---a
bb---b
32. 包含文件函数
函数 | 特点 |
---|---|
incloud | 发生错误时,包含文件的php后续代码依然执行! |
incloud_once | 除了incloud的功能外,还会做once检测,防止重复包含同样的文件 |
require | 发生错误时,包含文件的php所有后续代码不会再执行! |
require_once | 除了require的功能外,还会做once检测,防止重复包含同样的文件 |
少用带_once的函数,incloud文件只需要编译一次,因为每次执行incloud都会再执行一次对应的代码,如何减少incloud再次执行,需要重新解析的过程。
a.php
<?php
function demo(){
echo "demo函数";
}
b.php
<?php
incloud 'a.php';
//调用a.php的demo函数,输出为:demo函数
demo();
33. 数学函数
函数|功能|值
-|-
max();|最大值|数组或多个变量
min();|最小值|数组或多个变量
round();|四舍五入|变量,保留位数
mt_rand();|随机数|随机数范围
ceil();|向上取整|一个变量
floor();|向下取整|一个变量
34. 时间函数
函数|功能
-|
date_default_timezone_get();|当前默认时区 Asia:亚洲
define(“Time_Zone”,“Asia/shanghai”);date_default_timezone_set(Time_Zone);|设置时区
echo date(“Y-m-d H:i:s”);|输出当前时间
date(“Y”);|输出当前年份
date(“d”)-30;|往前数30天
print_r(time());|打印时间毫秒数,从1970.1.1 0时0分0秒开始
print_r(getDate());|返回当前时间
print_r(getDate()[‘year’]);|当前年份
checkdate(月,日,年);|判断输入的日期是否存在,返回值为bool(true/false)
mktime(时,分,秒,月,日,年);|返回一个毫秒数(时间戳)
strtotime(“now”);|返回当前毫秒数
strtotime(“10 September 2017”);|2017-9-10,返回毫秒数
strtotime("+1 day");|+1天,返回毫秒数
strtotime("+1 week 2 days 2 seconds");|当前时间+1天2小时2秒,返回毫秒数
strtotime(“next Monday”);|下一个周一,返回毫秒数
strtotime(“last Monday”);|上一个周一,返回毫秒数
date函数的格式参照表??????????????????
程序执行时间检测
//开始记录
$time_start = micortime(true);
//执行业务的地方
//结束记录
$time_end = micortime(true);
//计算秒数,返回值为浮点型数据
$time = $time_end - $time_start;
35. 字符串函数
- 单字节字符串处理函数(英文、数字)
- 多字节字符串处理函数(中文,一个字就占3个字节)
- 字符串编码转换函数
函数|意义
-|
trim( s t r ) ∣ 删 除 两 端 的 空 白 字 符 l t i r m ( str)|删除两端的空白字符 ltirm( str)∣删除两端的空白字符ltirm(str)|删除开头空白字符(或其他字符)
rtrim($str)/chop($str)
|删除末端空白字符(或其他字符)
md5( s t r ) ∣ 计 算 字 符 串 m d 5 的 散 列 值 m d 5 f i l e ( ) ∣ 计 算 文 件 m d 5 散 列 值 n u m b e r f o r m a t ( ) ∣ 以 千 位 分 隔 符 , 分 割 数 字 p r i n t ( ) ∣ 输 出 字 符 串 p r i n t f ( ) ∣ 输 出 格 式 化 字 符 串 s t r i p o s ( ) ∣ 查 找 字 符 在 字 符 串 中 首 次 出 现 的 位 置 ( 不 区 分 大 小 写 ) s t r p o s ( ) ∣ 查 找 字 符 串 首 次 出 现 的 位 置 s t r s t r ( ) / s t r c h r ( ) ∣ 忽 略 大 小 写 版 本 s t r l e n ( ) ∣ 返 回 字 符 串 长 度 s t r r c h r ( ) ∣ 查 找 字 符 在 字 符 串 中 最 后 一 次 出 现 的 位 置 s t r r i p o s ( ) ∣ 查 找 字 符 串 在 字 符 串 中 最 后 一 次 出 现 的 位 置 ( 不 区 分 大 小 写 ) s t r r p o s ( ) ∣ 查 找 字 符 串 在 字 符 串 中 最 后 一 次 出 现 的 位 置 s t r t o l o w e r ( ) ∣ 转 换 为 小 写 字 母 s t r t o u p p e r ( ) ∣ 转 换 为 大 写 字 母 d i m a m e ( " E : / w w w / d e m o . p h p " ) ∣ 路 径 中 目 录 部 分 s t r r e p e a t ( ′ . ′ , 20 ) ∣ 重 复 使 用 字 符 串 s t r p a d ( str)|计算字符串md5的散列值 md5_file()|计算文件md5散列值 number_format()|以千位分隔符,分割数字 print()|输出字符串 printf()|输出格式化字符串 stripos()|查找字符在字符串中首次出现的位置(不区分大小写) strpos()|查找字符串首次出现的位置 strstr()/strchr()|忽略大小写版本 strlen()|返回字符串长度 strrchr()|查找字符在字符串中最后一次出现的位置 strripos()|查找字符串在字符串中最后一次出现的位置(不区分大小写) strrpos()|查找字符串在字符串中最后一次出现的位置 strtolower()|转换为小写字母 strtoupper()|转换为大写字母 dimame("E:/www/demo.php")|路径中目录部分 str_repeat('.',20)|重复使用字符串 str_pad( str)∣计算字符串md5的散列值md5file()∣计算文件md5散列值numberformat()∣以千位分隔符,分割数字print()∣输出字符串printf()∣输出格式化字符串stripos()∣查找字符在字符串中首次出现的位置(不区分大小写)strpos()∣查找字符串首次出现的位置strstr()/strchr()∣忽略大小写版本strlen()∣返回字符串长度strrchr()∣查找字符在字符串中最后一次出现的位置strripos()∣查找字符串在字符串中最后一次出现的位置(不区分大小写)strrpos()∣查找字符串在字符串中最后一次出现的位置strtolower()∣转换为小写字母strtoupper()∣转换为大写字母dimame("E:/www/demo.php")∣路径中目录部分strrepeat(′.′,20)∣重复使用字符串strpad(str,20,’.’)|把字符串补充为指定的长度
str_split(’,’);|分割为数组