php基本语法
变量
一、组成
①变量名 ②变量值 ③变量类型
二、赋值
a.传值赋值 $a = 3 $b = 5 $a = $b
b.引用赋值 $a = 3 $b = 5 $a = $$b;
c.引用计数赋值 $a = new man(); $b = $a;
注意:区分大小写
三、8种变量类型
整形(100)
浮点型(45.20)
字符串('hello world')
布尔型(true/false)
null型(null)
数组(array)
对象(object)
资源型(resource)
常量
一、应用常量的原因
1:一处定义,随处调用.
2:一旦定义,不能改变
3:一处修改,所有修改.
二、常量的命名规则
命名: 与变量相同的命名规则
方法: define()函数
格式: define('常量名','具体值');
例子: define('PI',3.14);
常量与变量的比较
相同:
1:命名规则相同(但一般为大写)
不同:
1:引用常量时不用$,直接用名称.
2:常量只能用define定义,不能用赋值语句
3:常量一旦定义就不能重新定义或取消定义
4:常量的值只能是标量.
运算符
赋值运算符
算术运算符
递增运算符
逻辑运算符
比较运算符
字符串运算符
位运算符
流程控制
顺序语句(按顺序,一句一句来执行;)
分支语句
if, if/else ,if/else if/.../if,switch
循环语句
while,do/while,for
①单路分支结构 --if
if(exp) {
语句1;
语句2;
语句....N;
}
解释:如果表达式exp为真,则{}内的代码块,则执行,
如果为假,则不执行
②双路分支结构 --if /else
if(exp) {
代码段1;
} else {
代码段2;
}
解释:
如果 exp为真,执行代码段1
否则, 执行代码段2
注意:代码段1,代码段2必有且只有一段执行
③多路分支结构 --if/else if/else
if(exp1) {
代码段1;
} else if(exp2){
代码段2;
} else if(exp3){
代码段3;
} else {
代码段N;
}
如果exp1为真,则执行代码段1
如果exp2为真,则执行代码段2
.....
...
如果都不满足,执行代码段N
if/else if的短路特性:
任一个
④多路分支结构 --switch
switch(变量) {
case 值1:
代码段1;
break;
case 值2
代码段2;
break;
case 值3:
代码段3;
break;
}
如果等于 值1
执行代码段1;
退出;
如果等于 值2
执行代码段1;
退出;
如果等于 值3
执行代码段3;
退出;
⑤循环结构-- while循环
while(exp) {
代码段;
}
如果exp为假, while结束;
如果为exp真,执行循环体中的代码段;
再回到while判断
while循环的特点
特点:先判断表达式,后执行循环体
说明:
1、循环体有可能一次也不执行
2、循环体可为任意类型语句
3、下列情况,退出while循环:
●条件表达式不成立(为false)
●循环体内遇break,goto
4、无限循环: while(1)
循环体;
⑥do-while循环的特点
do {
代码段;
}while(exp);
执行循环体中的代码段;
再回到while判断
如果exp为假, while结束;
如果为exp真,
循环体至少执行一次
⑦for循环
for(exp1;exp2;exp3) {
循环体
}
先执行且只执行一次exp1,
再判断exp2是否为真,
如果为真则执行循环体.
执行循环体后,执行exp3;
再回到exp2
⑧控制结构之if/elseif/else
函数学习
函数概念
函数封装与重用
函数的定义格式
函数的返回值
函数的命名规范
参数的传值方式
变量函数
函数及函数中变量的作用域
PHP自带函数
①函数的概念 --程序角度
函数是有特定功能的代码段.
可以把某些常用而特定的功能写一个函数,
再想实现这个功能时,可能调用这个函数来达到.
从而达到重用代码和简化开发的目的.
②函数的调用
函数不会自己发挥作用,
只有在调用的时候才能运行
调用语法:
函数名([arg][,arg2]..[,arg3])
③函数的声明
function 函数名 ([arg1][,arg2][,arg3]...[,arg4]) {
代码段
return 返回值;
}
④函数的返回值
函数可以没有返回值,
也可以有一个返回值
不可能有多个返回值
⑤函数的执行权与交回
函数被调用时,
PHP解释器执行权进入到函数内部.
两种情况下,执行权交回
1:函数执行到最后一行
2:函数遇到return返回;
⑥函数之函数的命名规范
函数名命名与变量,常量命名规范相同.
函数名不区分大小写。
函数名必须是唯一的,即函数名不能和已经存在的函数重名。
⑦函数之函数的传值方法
function s($a,$b) {
$a *= 2;
$b *= 2;
Return $a+$b;
}
$a = 3; $b = 5;
Echo s($a,$b)."\n";
Echo $a."\n".$b;
function s($a,&$b) {
$a *= 2;
$b *= 2;
Return $a+$b;
}
$a = 3; $b = 5;
Echo s($a,$b)."\n";
Echo $a."\n".$b;
字符串
定义字符串的3种方法
单/双引号的用法
单双引号转义的不同
单双引号对变量解析的不同
如何选择单双引号
字符串常用函数分类
①定义字符串的3种方法
1:单引号;(高效)
2;双引号;(简便)
3:定界符;(自己看)
②单双引号的用法
$a = '眼高手低,永无所成';
echo $a;
$a = '情侣手表,一'戴'天娇';
echo $a; // 想想问题出在哪儿?
$a = "眼高手低,永无所成";
echo $a;
$a = "情侣手表,一"戴"天娇";
echo $a; // 想想问题出在哪儿?
③单/双引号转义的不同
④字符串常用函数分类
字符长度函数(int strlen($str) 计算字符长度
int mb_strlen ( string $str [, string $encoding ] )
)
查找字符位置函数:
strpos($str,search,[int]):查找search在$str 中的第一次位置从int开始;
stripos($str,search,[int]):函数返回字符串在另一个字符串中第一次出现的位置。该函数对大小写不敏感
strrpos($str,search,[int]):查找search在$str中的最后一次出现的位置从int
字符串替换函数
str_replace(search,replace,$str):从$str中查找 search用replace来替换
str_irreplace(search,replace,$str):
strtr($str,search,replace):这个函数中replace不能为"";
substr_replace($Str,$rep,$start[,length])$str原始字符串,$rep替换后的新
字符串,$start起始位置,$length替换的长度,该项可选
提取子字符函数(双字节)
substr($str,int start[,int length]):从$str中strat位置开始提取[length长度的字符串]。
strstr($str1,$str2): 从$str1(第一个的位置)搜索$str2并从它开始截取到结束字符串;若没有则返回FALSE。
stristr() 功能同strstr,只是不区分大小写。
strrchr() 从最后一次搜索到的字符处返回;
分割,连接,反转函数
str_split($str,len):把$str按len长度进行分割返回数组
split(search,$str[,int]): 把$str按search字符进行分割返回数组int是分割几次,后面的将不分割
explode(search,$str[,int])
implode —— 将数组用特定的分割符转变为字符串
去除,增加空格函数
string trim ( string $str [, string $charlist ] )
string ltrim ( string $str [, string $charlist ] )
string rtrim ( string $str [, string $charlist ] )
chunk_split($str,2);向$str字符里面按2个字符就加入一个空格;
str_pad —— 对字符串进行两侧的补白
HTML代码/数据库安全处理有关函数
addslashes ( string $str )
stripslashes ( string $str )
get_magic_quotes_gpc()
htmlspecialchars —— 将字符串中一些字符转换为HTML实体
htmlspecialchars_decode —— htmlspecialchars()函数的反函数,将HTML实体转换为字符
html_entity_decode —— htmlentities ()函数的反函数,将HTML实体转换为字符
htmlentities —— 将字符串中所有可转换字符转换为HTML实体
比较字符函数
int strcmp($str1,$str2):(字符串比较)
strcasecmp() 同上(不分大小写)
字符大小写转换函数
strtolower($str) 字符串转换为小写
strtoupper($str) 字符串转换为大写
ucfirst($str) 将字符串的第一个字符转换为大写
ucwords($str) 将每个单词的首字母转换为大写
数组的学习内容
数组的数据特点
数组的创建
键值的特点
数组的修改与删除
数组遍历与常用函数
①数组的数据特点
学号:234, php $stu1_num = 234;
姓名:李三, php $stu_name = '李三';
身高:174, php $stu_heiht = 174;
年级:高二, php $stu_grade = '高二';
家乡:衡水, php $stu_address = '衡水';
②创建数组的步骤
1:创建柜子;
2:给柜子标号(键值),
3:往柜子里放数据
------------PHP代码--------------
$stu['学号'] = 234;
$stu['姓名'] = '李三';
$stu['身高'] = 174;
$stu['年级'] = '高二';
$stu['家乡'] = '衡水';
③创建数组的另外一种方式
array结构来创建(更简便)
$stu1 = array('学号'=>234,'姓名'=>'李三','身高'=>174,'年级'=>'高二','家乡'=>'衡水');
注意:此时$stu1后面没有[]
④创建数组的两种方法总结
初始化创建数组
$数组名称[键值1]=值1;
$数组名称[键值2]=值2;
……
使用array结构创建数组
$数组名称=array(
键值1=>值1,
键值2=>值2,
……
)
⑤懒人创建的数组
$stu[] = 234;
$stu[] = '李三';
$stu[] = 174;
$stu[] = '高二';
$stu[] = '衡水';
⑥结构化创建数组(完成懒人的效果)
$stu = array(234,'李三',174,'高二','衡水');
$stu = array('学号'=>234,'姓名'=>'李三',174,'年级'=>'高二','衡水');
⑦键值的总结
0:键可以是字符串,也可以是整型
1:键如果指定,则以指定为准.
2:如果后续指定的键与前面的键重复,则值会覆盖前面值.
3:键如果没指定,则按该单元前已存在的最大的整数键值增1,形成整型键值.
⑧数组单元的追加/修改与删除
追加单元 $stu['专业'] = '广告';
修改 用键值指定某一具体单元,直接赋新值.$stu['年级'] = '高三';
删除:unset函数 unset($stu['家乡']);
⑨数组的分类
根据数组键名数据类型的不同进行分类
索引数组
以数字作为键名的数组。
关联数组
以数字、字符串或字符串混合为键名的数组
根据数组维数的不同进行分类
一维数组
只能保存一列数据内容。
多维数组
可以保存较复杂的数据内容。
⑩数组的常用函数
Count()
array_key_exists()
array_change_key_case();nk();
array_count_values();
array_fill();
array_filter();
array_flip();
array_sum();
array_values()
array_keys()
in_array()
array_push()
array_pop()
array_shift()
array_unshift()
Sort(),Resort(),Usort(),asort(),
ksort(),natsort(),natcasesort()
array_merge()
array_merge_recursive()
array_diff()
array_diff_assoc()
array_intersect()
array_intersect_assoc()
Range()
array_unique()
array_reverse()
Srand()
array_rand()
shuffle()
十一数组的循环
foreach循环结构
foreach( $array as $key=>$value ){
遍历操作;
}[code]
for循环结构
for( $i=0; $i<条件; $i++ ){
遍历操作;
}[code]
list操作 each函数
10。2013-8-13 list与each配合遍历数组
$stu = array('学号'=>234,'姓名'=>'李三','身高'=>174,'年级'=>'高二','家乡'=>'衡水');
while(list($key,$value)=each($stu)) {
Echo $key.”=>”.$value.”\n”;
}
11 数组的游标操作
Next(); prev(),end(),reset();
key(),current()