PHP自学笔记之精简版Word文档格式.docx
《PHP自学笔记之精简版Word文档格式.docx》由会员分享,可在线阅读,更多相关《PHP自学笔记之精简版Word文档格式.docx(39页珍藏版)》请在冰豆网上搜索。
4.include_once(filename)
5.注意:
$a=1;
include(“myphp.php”);
//在myphp.php文件中仍然可以访问$a的值
第二章:
语法基础
一、语法基础
1.数据类型
1)类型转换
方法一:
//不改变原操作数的类型
(int)$x;
//或(integer)$x;
(real)$x;
//或(double)$x;
或(float)$x;
(string)$x;
(array)$x;
(object)$x;
方法二:
Doubleval($x);
//将参数视为双精度数
Intval($x);
//将参数视为整型数
Strval($x):
//将参数视为字符串型
方法三:
//改变原操作数的类型
$x=1.5;
settype($x,”integer”);
//$x=1
参数值:
integerdoublestringarrayobject
2).取得操作数类型
$x=1;
gettype($x);
//integer
is_longis_doubleis_stringis_arrayis_object
2.字符串
1).转义字符
\n换行符
\r回车
\r横表
\\反斜线
\$货币符号
\“双引号
2).使用ASCCII码
ACSII码相关函数
函数
说明
chr(n)
返回ASCII码为n的字符
dechex(n)
返回等于给定十进制值n的十六进制值
decoct(n)
返回等于给定十进制n的八进制值
hexdec(n)
返回等于给定十六进制值n的十进制值
octdec(n)
返回等于给定八进制值n的十进制值
ord(c)
返回字符c的ASCII码
例:
打印ASCII码为32-127的字符的十进制、八进制、和十六进制值
for($i=32;
$i<
128;
$i++)
{
$c=chr($i);
$octal=decoct($i);
$hex=dechex($i);
echo=”<
br>
$i(octal$octal,hex$hex):
$c”;
}
3).单引号字符串
[1].在单引号字符串中,惟一允许的转义序列是\\和\‘
[2].在输出单引号字符串时,不会执行变量替换
4)printf(“thevalueofnis:
%d”,$n);
$result=sprintf(“thevalueofnis:
5).number_format()
格式:
number_format(number);
number_format(number,decimals);
number_format(number,decimals,dec_point,thousands_sep);
参数:
number:
指定想要格式化的数值
decimals:
指定期望的小数位数
thousands_sep:
指定用作千位分隔符的字符
默认:
格式化后的结果没有小数
在任何小数位之前插入一个点(。
)
用逗号做为千位分隔符
6).处理字符串
[1].获得中字符串的长度strlen(STRING)
如:
$mystr=”xcvfwfwef”;
$mylen=strlen($mystr);
[2].去掉字符串中的空白字符(空白字符:
空格、制表符、换行符等)
chop(s)
返回从右边去掉了空白的s的值,与rtrim(s)相同
ltrim(s)
返回从左边去掉了空白的s的值
rtrim(s)
返回从右边去掉了空白的s的值,与chop(s)相同
trim(s)
返回从两端去掉了空白的s的值
[3].大小写转换函数
strtoupper()返回全部转换为大写的参数值
strtolower()返回全部转换为小写的参数值
[4].比较字符串
strcasecmp(s1,s2)
执行不区分大小写比较,如果s1小于s2,则返回小于0的值,如果s1大于s2,则返回大于0的值,否则返回0
strcmp(s1,s2)
执行区分大小写比较,如果s1小于s2,则返回小于0的值,如果s1大于s2,则返回大于0的值,否则返回0
strncasecmp(s1,s2,n)
执行不区分大小写比较,如果s1小于s2,则返回小于0的值,如果s1大于s2,则返回大于0的值,否则返回0,大比较中最多包括n个字符
strncmp(s1,s2,n)
执行区分大小写比较,如果s1小于s2,则返回小于0的值,如果s1大于s2,则返回大于0的值,否则返回0,大比较中最多包括n个字符
[5].查找和提取子串
strchr(s1,s2)
返回s1中从s2的第一次出现到最后的部分。
如果没有发现s2,那么返回fasle,stristr执行相同的操作
stristr(s1,s2)
如果没有发现s2,那么返回fasle,比较时不考虑大小写
strpos(s1,s2)
返回s1中s2的第一次出现的整数位置,如果没有发现s2返回false
strrchr(s1,s2)
返回s1中从s2的最后一次出现到最后的部分,如果没有发现s2,返回false,比较中只使用s2的第一个字符
strstr(s1,s2)
返回s1中从s2的第一次出现到最后的部分,如果没有发现s2,返回false,strchr执行相同的操作
substr(s,start)
substr(s,start,len)
返回s中由一个整数索引start或两个索引start及len指定的部分,字符串的第一个位置是位置0
[6].替换子串
str_replace(search,replace,subject)
搜索subject中的子串search,如果找到子串,使用replace替换第一次出现的search,然后返回subject的值
substr_replace(subject,replace,start,len)
使用replace替换在start开始、长度为len的子串,然后返回subject的值
3.常量
[1].PHP预定义常量
__FILE__;
//指定当前文件物理路径(包括文件名)
__LINE__;
//指定当前脚本所在的行数
PHP_VERSION;
//指定PHP程序的版本
PHP_OS;
//指定PHP解释器的操作系统名称
TRUE;
//该常量的值为true
FALSE;
//该常量的值为false
E_ERROR;
//指到最近的错误处
E_WARNING;
//指到最近的警告处
E_PARSE;
//剖析语法有潜在问题的地方
E_NOTICE;
//发生不正常现象但不一定是错误的地方,如存取一个不存在的变量
例:
echo__LINE__;
echo__FILE__;
echoPHP_VERSION;
echoPHP_OS;
[2].用户定义常量
1).常量的定义
define(“CL_PI”,3.14159);
2).常量的引用
echoCL_PI;
//无须$
3).常量的测试
echodefined(“CL_PI”);
//如果已经定义了,返回1,否则返回0
4).π常量(精确到14位有效数字)
echopi();
4.变量
1).PHP变量无需预先声明
2).无需类型定义
3).不允许未赋值就使用
例:
$b=1;
$a=true;
//$a=$b
[1].声明变量
(1).全局变量:
global$mystr
(2).静态变量:
static$mystr2//一般用于子程序循环中,使得循环结束,其变量仍然存在
(3).动态变量:
如:
$name=”cbw”;
$$name=111;
//$cbw=111;
${$name.”_1”}=222;
//$cbw_1=222;
(4).标量变量
$xx=”xx”
[2].判断变量是否已配置
isset($mystr);
//如果已配置则返回true
[3].删除变量
unset($mystr);
5.运算符
1).算术运算符
+、—、*、/、%、++、--
$a=4;
$b=2;
/*
$a+$b=6
$a-$b=2
$a*$b=8
$a/$b=2
$a%$b=0//取余
*/
$a=5;
$a++;
//$a=6
$a--;
//$a=5
2).赋值运算符
=
$a=4;
$b=$a;
//$b=4
3).比较运算符
==相等
===相等且类型相同
!
=不等
==不等或类型不同
<
=
4).逻辑运算
&
而且(And)
and
||
或者(Or)
or
xor
异或(Xor)
不(Not)
5).拼接字符串运算符
.
$str_string1=”这是”;
$str_string2=”一个PHP程序”;
$str_string3=$str_string1.$str_string2;
//$str_sring3=”这是一个PHP程序”
6).其它运算符
$
变量
变量的地址(加在变量前)
@
不显示错误信息(加在函数前)
->
类的方法或者属性
=>
数组的元素值
:
三元运算子
6.数组
1).数字数组(传统数组:
数组项的下标是数组序列)
[1].使用赋值语句
例:
$x[]=”cbw”;
//$x[0]=”cbw”
$x[]=”lj”;
//$x[1]=”lj”
$x[1]=”cbw”//$x[1]=”cbw”
$x[2]=”lj”//$x[2]=”lj”
$x[]=”q”//$x[3]=”q”
$x[10]=”cbw”//$x[10]=”cbw”
$x[32]=”lj”//$x[32]=”lj”
$x[]=”q”//$x[33]=”q”
[2].使用array创建:
$a=array(1,2,3,4);
//$a[0]=1
//$a[1]=2
//$a[2]=3
//$a[3]=4
$x=array(“c”,”b”,”w”);
//$x[0]=”c”$x[1]=”b”$x[2]=”w”
$x=array(10=>
”c”,”b”,”w”);
//x[10]=”c”$x[11]=”b”$x[12]=”w”
2).关联数组(数组项的下标是命名关键字)
$x[“c”]=”cbw”//$x[“c”]=”cbw”
$x[“l”]=”lj”//$x[“l”]=”lj”
$x[“q”]=”q”//$x[“q”]=”q”
[2].使用array创建:
$b=array(“name”=>
”cbw”,”sex”=>
”男”);
//$b[“name”]=”cbw”
//$b[“sex”]=”男”
3).处理数组
①.返回数组长度:
sizeof($myarray)//返回数组$myarray的长度
count($x)//返回数组$x的元素数量
②.遍历数组元素:
A.顺序数组:
for($i=1;
22;
$i++)循环
B.非顺序数组(也可用于顺序数组的遍历):
[1].while循环
例1:
reset($arr);
//将数组的指针指到数组第一个元素
//list:
列出数组中元素的值each:
返回数组中下一个元素的索引及值
while(list(,$value)=each($arr)){
echo"
Value:
$value<
\n"
;
}
等价于:
foreach($arras$value){
ecno"
value:
$value<
例2
reset($arr);
while(list($key,$value)=each($arr)){
echo"
Key:
$key;
Value:
foreach{$arras$key=>
$value){
[1].foreach($myarrayas$key=>
$string)循环
或foreach($myarrayas$string)
参数:
$myarray:
目标数组
$key:
数组索引变量(自动分配)
$string:
数组元素值(自动分配)
$myarray=array(“name”=>
”男”,”age”=>
”22”);
foreach($myarrayas$temp_str){
echo$temp_str;
//输出所有元素
}
输出:
cbw男22
[2].使用列举函数:
current/next()/prev()/key()
$myarray=array("
name"
"
cbw"
"
sex"
男"
age"
22"
);
$mycurrent=current($myarray);
echokey($myarray)."
.$mycurrent.”<
”;
$mynext=next($myarray);
.$mynext.”<
$myprev=prev($myarray);
.$myprev.”<
输出:
name=>
cbw
sex=>
男
age=>
22
[3].each()函数
$myeach=each($myarray);
echo$each[0].”<
echo$each[1].”<
echo$each[“key”].”<
echo$each[“value”].”<
echo$myeach[0]."
echo$myeach[1]."
$myeach=each($myarray);
输出:
name
sex
age
[4].list()/each()/next()/prev()
list($key,$value)=each($myarray);
$key=>
③.循环取得数组变量值的键值
$myarray=array(“name”=>
foreach($arrayas$temp_key=>
$temp_str){
echo“$temp_key=>
$temp_str”;
}
④.数组的排序
sort()/asort()/rsort()/Arsort()/ksort()/Krsort()
$myarray=array(10=>
”Perl”,20=>
”PHP”,21=>
”Python”);
sort($myarray);
0=>
1=>
Perl
2=>
Python
注:
大写字母排在小写字母的前面
排序函数总结
操作
结果
按值对数组排序
aort()
0=>
1=>
2=>
按值对关联数组排序
asort()
20=>
10=>
21=>
按值的降序对数组排序
arsort()
按标识符对数组或关联数组排序
ksort()
按标识符的降序对数组或关联数组排序
krsort()
7.函数(用户自定义函数)
1).访问函数外的值
$a=1;
functionfun_temp($x){
$x=$a;
//不能访问
$x=$GLOBALS[“a”];
//可以访问
Global$a;
//也可以访问
$a=2;
2).参数的默认值
functionfun_temp($x=”默认值”){
echo$x;
3).按值传递
//创建:
//调用:
$y=0;
fun_temp($y);
echo&
y;
0
4).按引用传递参数
functionfun_temp(&
$x){
1
或例:
//创建:
functionfun_temp($x){
$x=1;
fun_temp(&
$y);
1
5).返回值
[1].普通返回值
functionsquare($num){
return$num*$num;
引用:
echosquare(4);
[2].返回数组
functionsmall(){
returnmyarray(0,1,2);
list($zero,$one,$two)=small();
[3]返回指针
function&
reference(){
return$some;
$newref=&
reference();
6).变量函数
<
//定义foo()函数
functlonfoo(){}
//定义bar()函数
functlonbar($arg='
'
){
Inbar();
argumentwas'
$arg'
.<
$func='
fo