三大类八小类
类型 | 说明 |
---|---|
Boolean(布尔值) | True 真 ,可以用1表示 False假,可以用0表示 |
String(字符串型) | 连续的字符序列,可以是计算机中能表示的一切字符 |
Integer(整形) | 只能包含整数,可以是正数或负数 |
Float(浮点型) | 有小数位,保存的是近似位,不能参与比较 |
单引号’ ’不会解析变量,双引号” “会解析变量
$a = 10;
echo '$a';//输出 $a
echo "$a";//输出 10
?>
字符串连接符 .
echo "连接"."字符串"// 输出 连接字符串
?>
类型 | 说明 |
---|---|
数组(array) | 一组数据的集合 |
对象(object) | 任何事物都可以被看作一个对象 |
类型 | 说明 |
---|---|
资源(resouree) | 保存了到外部资源的一个引用 |
空值(null) | 表示没有为该变量设置任何值 |
被赋予空值3种情况
$a = 1;
$b = "2";
var_dump($a + $b); // 整形
var_dump($a . $b); //字符串型
var_dump($a+5); //整形
var_dump($a + 5.21) //浮点型
?>
转换函数 | 转换类型 |
---|---|
(boolean),(bool) | 强制转换为布尔型 |
(string) | 强制转换为字符串类型 |
(float),(double),(real) | 强制转换为浮点型 |
(array) | 强制转换为数组 |
(object) | 强制转换为对象 |
注意
转化成boolean型
null、0和未赋值的变量或数组,会被转换成False,其他转换成True
转换成整形
false转换成0,true转换成1
浮点型小数部分会被舍去
字符串如果以数字开头,就会被截取非数字位,否则输出0
强制转换成整形还可以使用函数 intval() ,转换成字符串可以用strval()
函数 | 检测类型 |
---|---|
is_bool | 是否为布尔值 |
is_string | 是否为字符串类型 |
is_float | 是否为浮点 |
is_int | 是否为整形 |
is_null | 是否为null |
is_object | 是否为对象 |
is_numeric | 是否为数字或数字组成的字符串 |
$a = 1;
$b = "2";
echo is_int($a)."
"; //输出 1
echo is_bool($b); //不会输出
?>
使用函数 var_dump();
$a = 100;
$b = "222";
var_dump($a);
var_dump($b);
?>
// 单行注释
/* 多行注释 */
//结束符使用英文分号 ‘;’
只能输出字符串、数字、布尔类型得数据
可以显示一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结
构。
require
常用于引入 重要 文件,若引入失败会直接影响到当前整个脚本,引入失败报 Error错误。
include
常用于引入 普通 文件,若引入失败不会对当前脚本有较大的影响,引入失败报 Warning错误。
require_once
只能引入一次,其他的同require
include_once
只能引入一次,其他的同include
常量是程序在执行期间无法改变的数据。常量的作用域是全局的。
一般常量都为大写字母,常量名前没有$符,分为自定义常量和预定于常量
用define()函数定义常量:
define(常量名,值,[是否区别大小写]) true表示不区分大小写,默认是false
define('NUMBER',521);
echo NUMBER;
?>
还可以使用const关键字定义常量
const NAME='tom';
echo NAME;
注意
1、定义常量有两种方式,define()和const
2、常量在整个运行过程中值保持不变,常量不能重新定义
3、使用constant获取特殊字符做的常量名的值
4、defined()用来判断常量是否被定义
echo PHP_VERSION,'
'; //PHP版本号
echo PHP_OS,'
'; //PHP操作系统
echo PHP_INT_MAX,'
'; //PHP中整型的最大值
echo __LINE__,'
'; //获取当前行号
echo __FILE__,'
'; //文件的完整路径和文件名
echo __DIR__,'
'; //文件所在的目录
?>
由 $ 和后面的字符组成。一个有效的变量名由 字母或下划线开头,后面跟任意数字或字母
//合法的命名
$a = 1;
$a_ = 1;
$_a =1 ;
//非法的命名
$123 = 1;
$12a = 1;
$*a = 1;
传值赋值
将一个变量的值赋给另一个变量
$a = 10;
$b = $a;
echo $a;
echo $b
?>
引用赋值 &
一个变量引用另一个变量的值,两个变量共享一块内存,当一个数据变时,另一个也会变
$a = 10;
$b = &$a;
$b =20;
echo $a;
echo $b
?>
一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。
$a = '我是大哥';
$$a = '我是小弟';
echo "$我是大哥"
//或
$a = '我是大哥';
$$a = '我是小弟';
echo ${
$a};
例子 | 名称 | 结果 |
---|---|---|
-$a | 取反 | $a 的负值。 |
$a + $b | 加法 | $a 和 $b 的和。 |
$a - $b | 减法 | $a 和 $b 的差。 |
$a * $b | 乘法 | $a 和 $b 的积。 |
$a / $b | 除法 | $a 除以 $b 的商。 |
$a % $b | 取模 | $a 除以 $b 的余数。 |
$a ** $b | 求幂 | $a 的 $b次方的值. PHP 5.6版本中引入. |
除法运算符总是返回浮点数。只有在下列情况例外:两个操作数都是整数(或字符串转换成的整数)并且正好能整除,这时它返回一个整数。
取模运算符的操作数在运算之前都会转换成整数(除去小数部分)。
取模运算符 %
的结果和被除数的符号(正负号)相同。即 $a % $b
的结果和 $a 的符号相同。
运算符 | 例子 |
---|---|
= | $a = $b |
+= | $a += 1 |
-= | $a -=1 |
*= | $a *= 1 |
/= | $a /= 1 |
%= | $a %= 1 |
.= | $a .= abc |
例子 | 名称 | 结果 |
---|---|---|
$a & $b | And(按位与) | 将把 $a 和 $b 中都为 1 的位设为 1。 |
$a | $b | Or(按位或) | 将把 $a 和 $b 中任何一个为 1 的位设为 1。 |
$a ^ $b | Xor(按位异或) | 将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。 |
~ $a | Not(按位取反) | 将 $a 中为 0 的位设为 1,反之亦然。 |
$a << $b | Shift left(左移) | 将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。 |
$a >> $b | Shift right(右移) | 将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。 |
$a = 9; //二进制编码1001
$b = 12; //二进制编码1100
echo $a & $b; //转换为1000,输出 8
echo $a | $b; //转换为1101,输出 13
echo $a ^ $b; //转换为0101,输出 5
echo ~$aa; //输出-10
echo $a<<2; //转换为 100100,输出 36
echo $b>>2; //转化为11,输出 11
?>
例子 | 说明 |
---|---|
++$a | 先加1,后赋值 |
$a++ | 先赋值,后加1 |
–$a | 先减1,后赋值 |
$a– | 先赋值,后减1 |
$a = 9;
echo ++$a; //输出10
$a = 9;
echo $a++; //输出9
echo $a //输出10
$a = 9;
echo --$a; //输出8
$a = 9;
echo $a--; //输出9
echo $a; //输出8
?>
例子 | 名称 | 结果 |
---|---|---|
$a and $b | And(逻辑与) | TRUE,如果 $a 和 $b 都为 TRUE。 |
$a or $b | Or(逻辑或) | TRUE,如果 $a 或 $b 任一为 TRUE。 |
$a xor $b | Xor(逻辑异或) | TRUE,如果 $a 或 $b 任一为 TRUE,但不同时是。 |
! $a | Not(逻辑非) | TRUE,如果 $a 不为 TRUE。 |
$a && $b | And(逻辑与) | TRUE,如果 $a 和 $b 都为 TRUE。 |
$a || $b | Or(逻辑或) | TRUE,如果 $a 或 $b 任一为 TRUE。 |
例子 | 名称 | 结果 |
---|---|---|
$a == $b | 等于 | TRUE,如果类型转换后 $a 等于 $b。 |
$a === $b | 全等 | TRUE,如果 $a 等于 $b,并且它们的类型也相同。 |
$a != $b | 不等 | TRUE,如果类型转换后 $a 不等于 $b。 |
$a <> $b | 不等 | TRUE,如果类型转换后 $a 不等于 $b。 |
$a !== $b | 不全等 | TRUE,如果 $a 不等于 $b,或者它们的类型不同。 |
$a < $b | 小与 | TRUE,如果 $a 严格小于 $b。 |
$a > $b | 大于 | TRUE,如果 $a 严格大于 $b。 |
$a <= $b | 小于等于 | TRUE,如果 $a 小于或者等于 $b。 |
$a >= $b | 大于等于 | TRUE,如果 $a 大于或者等于 $b。 |
$a <=> $b | 结合比较运算符 | 当$a小于、等于、大于than $b时 分别返回一个小于、等于、大于0的integer 值。 PHP7开始提供. |
表达式1?表达式2:表达式3
$score = 65;
echo $score>60?'及格':'不及格';
?>
优先级 | 结合方向 | 运算符 | 附加信息 |
---|---|---|---|
1 | 无结合 | clone、new | clone 和 new |
2 | 从右向左 | ** | 算术运算符 |
3 | 从右向左 | ++、–、~、(int)、(float)、(string)、(array)、(object)、(bool)、@ | 类型、递增/递减、错误控制 |
4 | 无结合 | instanceof | 类型 |
5 | 从右向左 | ! | 逻辑运算符 |
6 | 从左向右 | *、/、% | 算术运算符 |
7 | 从左向右 | +、-、. | 算术运算符和字符串运算符 |
8 | 从左向右 | <<、>> | 位运算符 |
9 | 无结合 | <、<=、>、>= | 比较运算符 |
10 | 无结合 | 、!=、=、!==、<>、<=> | 比较运算符 |
11 | 从左向右 | & | 位运算符和引用 |
12 | 从左向右 | ^ | 位运算符 |
13 | 从左向右 | | | 位运算符 |
14 | 从左向右 | && | 逻辑运算符 |
15 | 从左向右 | || | 逻辑运算符 |
16 | 从右向左 | ?? | null 合并运算符 |
17 | 从左向右 | ? : | 三元运算符 |
18 | 从右向左 | =、+=、-=、*=、**=、/=、.=、%=、&=、|=、^=、<<=、>>= | 赋值运算符 |
19 | 从左向右 | and | 逻辑运算符 |
20 | 从左向右 | xor | 逻辑运算符 |
21 | 从左向右 | or | 逻辑运算符 |
选择和循环结构需要特殊的控制语句来实现(3种)
单 if 语句结构
if(条件){
执行代码
}
if…else…语句结构
if(条件){
执行代码1
}else{
执行代码2
}
if…elseif…语句结构
if(条件1){
执行代码1
}elseif(条件2){
执行代码2
}elseif(条件3){
执行代码3
}else{
执行代码4
}
switch(条件){
case 条件1:
执行代码1;
break;
case 条件2:
执行代码2;
break;
case 条件3:
执行代码3;
break;
default:
执行代码4;
}
例题
$score = 100;
switch($score){
case $score>=60&&$score<=99:
echo '及格';
break;
case $score<60&&$score>=0:
echo'不及格';
break;
default:
echo'啊这';
}
?>
while(条件){
执行代码;
}
do{
执行代码;
}while{
条件} //先做再判断
for(条件1;条件2;条件3){
执行代码
}
格式:foreach(array as $key => $value)
当执行到break语句时结束当前循环
当执行到continue语句时跳过当前循环,执行下次循环
$a = 0;
for($i = 0; $i<10; $i++){
if($i==5){
continue;
}
echo $i;
}
?>
//输出99乘法表
echo "";
for($i = 1; $i<10; $i++){
echo '';
for($j = 1; $j<=$i;$j++){
echo"".$j."*".$i."=".$i*$j." ";
}
echo " ";
}
echo "
"
?>
//输出上三角九九乘法表
echo "";
for($i = 1; $i<10; $i++){
echo '';
for($j = $i; $j<=9;$j++){
echo"".$j."*".$i."=".$i*$j." ";
}
echo " ";
}
echo "
"
?>
库函数分为数学函数、字符串函数、数组函数、目录函数、文件系统函数、时间函数和错误处理函数等几类
函数名 | 语法 | 说明 |
---|---|---|
rand | rand(min,max) | 返回随机整数 |
abs | abs() | 返回数字的绝对值 |
min | min(array) | 返回最小值 |
max | max(array) | 返回最大值 |
round | round() | 四舍五入 |
floor | floor() | 向下取整 |
ceil | ceil() | 向上取整 |
pow | pow(mixed,mixed) | 返回base的exp次方的值 |
sqrt | sqrt() | 返回平方根 |
sin | sin() | 返回正弦值 |
cos | cos() | 返回余弦值 |
tan | tan() | 返回正切值 |
deg2rad | deg2rad() | 将角度转换为弧度 |
exp | float exp() | 返回e的arg幂次方 |
pi | pi() | 返回圆周率 |
函数 | 用法 | 说明 |
---|---|---|
trim() | trim(字符串,特殊符) | 去除字符串首位空白等特殊符号 |
strtolower() | 转换为小写 | |
strtoupper() | 转换为大写 | |
htmlspecialchars() | 格式化字符串中得html标签 | |
strip_tags() | 函数剥去HTML、XML以及PHP的标签 | |
md5() | 计算字符串的MD5散列值 | |
strlen() | 字节长度utf8编码西文:1字节,汉字:3字节 | |
mb_strlen() | 字符个数 | |
strstr | 查找字符串的首次出现,开始向后截取全部,并返回 | |
substr() | 字符串截取函数(中文乱码) | |
mb_substr() | mb_substr(字符串,索引) | 字符串截取函数(中文不乱码) |
strpos() | 查找字符串在另一字符串中第一次出现的位置 | |
stripos() | 查找字符串在另一字符串中最后一次出现的位置 | |
str_replace() | str_replace(被替换字符串,替换字符串,字符串) | 字符串替换函数 |
str_repeat() | str_repeat(字符串,次数) | 重复一个字符串 |
ltrim()、trim()、rtrim() | 去除左侧、两侧、右侧多余字符(默认删除空格) | |
explode(符号,字符串) | 字符串拆分成数组 | |
implode(符号,数组) | 数组合并成字符串 | |
md5()、sha1() | 加密 |
函数 | 说明 |
---|---|
json_encode(数组) | JSON格式编码 |
json_decode(字符串,参数) | 对JSON格式的字符串进行解码,参数: true:返回数组 ;false:返回对象 |
函数 | 功能 |
---|---|
array_values | 数组中所有的值放入一个新的索引数组,并返回 |
array_keys() | 数组中所有的键放入一个新的索引数组,并返回 |
array_reverse() | 颠倒数组顺序 |
in_array(元素,数组) | 检查数组中是否存在某个值 |
count() | 计算数组中的单元数目或对象中的属性个数 |
array_unshift() | 在数组开头插入一个或多个元素 |
array_push() | 在数组结尾插入一个或多个元素 |
array_pop() | 删除数组最后一个元素 |
array_shift() | 删除数组开头的元素 |
array_unique() | 移除数组中重复的值 |
array_splice(数组,索引, 数量) | 删除指定元素 |
sort() | 排序(升序) |
rsort() | 排序(降序) |
array_merge() | 合并一个或多个数组 |
在函数内部定义,只作用于函数内部
在函数外部定义,作用与当前整个脚本,在函数内部使用需要使用global关键声明
$a = 10;
function sum(){
global $a;
$a++;
retrun $a;
}
$a =sum();
echo $a
使用 global 命令,将全局变量引入到函数内部,但这种方式不够灵活,可以使用引用变量的方法。
//定义变量时,用&修饰参数
$a = 10;
function fn(&$arg){
$arg++;
}
fn($a);
var_dump($a);
在函数内部定义,作用于函数内部,使用static关键字声明。
function fn(){
static $a = 1;
$a++;
echo $a;
}
fn();//2
fn();//3
fn();//4
元字符 | 说明 |
---|---|
a-z | 英文小写字母 |
A-Z | 英文大写字母 |
0-9 | 数字 |
\r \n \t | 非打印字符 |
\d | 数字,相当于0-9 |
\D | \d取反 |
\w | 字母数字下划线 |
\W | \w取反 |
\s | 空白字符 |
\S | 非空白字符 |
[] | 任意匹配[]中单个字符 |
. | 匹配任意字符(换行符除外) |
{n} | 匹配n次 |
{n,} | 匹配至少n次 |
{n,m} | 至少n次,最多m次 |
* | 匹配0个或多个,相当于{0,} |
+ | 匹配1个或多个,相当于{1,} |
? | 匹配0个或1个,相当于{0,1} |
^ | 1、匹配正则开头 2、放在[^],内容取反 |
$ | 匹配正则结尾 |
| | 匹配|两侧任选其一 |
() | 1.分组 2.子存储 |
//连接数据库
$link = @mysqli_connect('服务地址','帐户','密码','数据库名称','端口号');
//测试
if($link){
echo '连接成功';
}else{
die('错误信息:'.mysqli_error($link));
}
//简写
$link = @mysqli_connect('服务地址','帐户','密码','数据库名称','端口号') or die('连接失败:'.mysqli_error());
//设置字符集
mysqli_set_charset($link,'字符集');
//执行操作
$sql = insert into 表名 values()//增
$sql = delete from 表名 where 条件//删
$sql = update 表名 set 更新字段='数据' where 条件//改
$sql = select 查询字段 from 表名 where 查询条件 //查
mysqli_query($link,$sql)
//关闭数据库
mysqli_close($link)
mysqli_query();执行SQL语句
mysqli_insert_id();获取插入自动增长的ID
mysqli_affected_rows();获取受影响的记录数
mysqli_error();获取执行SQL语句的错误信息
mysqli_erron();获取SQL语句的错误码
mysqli_fetch_assoc();将一条数据匹配关联数据
mysqli_fetch_row();将一条记录匹配成索引数据
mysqli_fetch_array();将一条记录匹配成既有关联数组又有索引数组
mysqli_fetch_all();匹配所有记录
mysqli_num_rows():总行数
mysqli_num_fields():总记录数
mysqli_free_result():销毁结果集
mysqli_close():关闭连接
//PHP
header("refresh:秒数;url=跳转地址")//等待秒数
header("Location:跳转地址")//直接跳转
//js
window.location.href=URL : //在本窗体打开一个新的页面,也是最常用的一种方法;
window.open(URL) : //在一个新的窗口打开一个新的页面;
location.replace(URL) ://本窗口的页面被替换为一个新的页面URL,替换后不可以回退到上个页面;
localtion.assign(URL) ://本窗口的页面转为为一个新的页面URL,与上一方法类似,但此方法可回退至上一页面。
//jQ
1.我们可以利用http的重定向来跳转
window.location.replace("URL");
2.使用href来跳转
window.location.href = "URL";
//方式一
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
}
//方式二
if(!empty($_POST)){
}
数
mysqli_error();获取执行SQL语句的错误信息
mysqli_erron();获取SQL语句的错误码
## 数据操作用到的函数
```mysql
mysqli_fetch_assoc();将一条数据匹配关联数据
mysqli_fetch_row();将一条记录匹配成索引数据
mysqli_fetch_array();将一条记录匹配成既有关联数组又有索引数组
mysqli_fetch_all();匹配所有记录
mysqli_num_rows():总行数
mysqli_num_fields():总记录数
mysqli_free_result():销毁结果集
mysqli_close():关闭连接
//PHP
header("refresh:秒数;url=跳转地址")//等待秒数
header("Location:跳转地址")//直接跳转
//js
window.location.href=URL : //在本窗体打开一个新的页面,也是最常用的一种方法;
window.open(URL) : //在一个新的窗口打开一个新的页面;
location.replace(URL) ://本窗口的页面被替换为一个新的页面URL,替换后不可以回退到上个页面;
localtion.assign(URL) ://本窗口的页面转为为一个新的页面URL,与上一方法类似,但此方法可回退至上一页面。
//jQ
1.我们可以利用http的重定向来跳转
window.location.replace("URL");
2.使用href来跳转
window.location.href = "URL";
//方式一
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
}
//方式二
if(!empty($_POST)){
}