PHP基础巩固Word格式文档下载.docx
《PHP基础巩固Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《PHP基础巩固Word格式文档下载.docx(41页珍藏版)》请在冰豆网上搜索。
a是false"
a不是false"
布尔教育_燕十八_PHP基础巩固.004.打印调试变量
echo字符串
print_r数组
var_dump打印类型及值
****/
//变量打印
$a=1;
echo$a;
$b=array(1,2,3);
print_r($b);
var_dump($b);
var_dump($a);
布尔教育_燕十八_PHP基础巩固.005.变量类型转换
PHP在变量定义中不需要(或不支持)明确的类型定义;
变量类型是根据使用该变量的上下文所决定的。
也就是说,如果把一个字符串值赋给变量
$var
,
就成了一个字符串。
如果又把一个整型值赋给
,那它就成了一个整数。
PHP的自动类型转换的一个例子是加法运算符“+”。
如果任何一个操作数是浮点数,则所有的操作数都被当成浮点数,结果也是浮点数。
否则操作数会被解释为整数,结果也是整数。
注意这并没有改变这些操作数本身的类型;
改变的仅是这些操作数如何被求值以及表达式本身的类型。
?
php
$foo
=
0"
//
是字符串
(ASCII
48)
+=
2
现在是一个整数
(2)
+
1.3
现在是一个浮点数
(3.3)
5
10
Little
Piggies"
是整数
(15)
Small
Pigs"
>
布尔教育_燕十八_PHP基础巩固.006.传值赋值与引用赋值
php
//------------传值赋值(赋值不变)
$a=3;
$b=5;
$b=$a;
//把$a所指向的地址里的值复制一份赋给$b地址里
echo$b,"
//3
//------------引用赋值
(赋值改变,unset()函数无效)
新的变量简单的引用了原始变量,改变新的变量将影响到原始变量使用引用赋值
$b=&
$a;
//把$a地址赋给$b,这时$b和$a同时指向$a的地址
unset($a);
//销毁$a的值
echo$b;
//3只是销毁了$a的值,但$b的值未销毁,所以$b的值照样存在
布尔教育_燕十八_PHP基础巩固.007.销毁变量
//&
$var无效
unset()销毁指定的变量。
unset()在函数中的行为会依赖于想要销毁的变量的类型而有所不同。
如果在函数中unset()一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用unset()之前一样的值。
销毁单个变量
unset
(
);
销毁单个数组元素
$bar
[
'
quux'
]);
销毁一个以上的变量
unset(
$foo1
$foo2
$foo3
布尔教育_燕十八_PHP基础巩固.008.动态变量
用变量的值作为变量的名字
$a='
abc'
$b='
a'
所以
$$b='
布尔教育_燕十八_PHP基础巩固.009.算术运算符
1.算术运算符
除法运算符总是返回浮点数。
只有在下列情况例外:
两个操作数都是整数(或字符串转换成的整数)并且正好能整除,这时它返回一个整数。
取模运算符的操作数在运算之前都会转换成整数(除去小数部分)。
取模运算符%的结果和被除数的符号(正负号)相同。
即$a%$b的结果和$a的符号相同。
-$a取反$a的负值。
$a+$b加法$a和$b的和。
$a-$b减法$a和$b的差。
$a*$b乘法$a和$b的积。
$a/$b除法$a除以$b的商。
$a%$b取模$a除以$b的余数。
2.赋值运算符
3.位运算符
4.比较运算符
5.错误控制运算符
6.执行运算符
7.递增/递减运算符
8.逻辑运算符
9.字符串运算符
10.数组运算符
11.类型运算符
布尔教育_燕十八_PHP基础巩固.010.比较运算符
//凡是运算必有运算结果
结果是Boolean型只有true和false
$a=$b//赋值
$a==$b//仅比较结果的值
$a===$b//不仅比较结果,还比较结果的类型
布尔教育_燕十八_PHP基础巩固.011.三元运算符
$a=5;
$b=6;
var_dump(($a>
$b)?
$a:
$b);
布尔教育_燕十八_PHP基础巩固.012.逻辑运算符
$aand$bAnd(逻辑与)TRUE,如果$a和$b都为TRUE。
$aor$bOr(逻辑或)TRUE,如果$a或$b任一为TRUE。
$axor$bXor(逻辑异或)TRUE,如果$a或$b任一为TRUE,但不同时是。
!
$aNot(逻辑非)TRUE,如果$a不为TRUE。
$a&
&
$bAnd(逻辑与)TRUE,如果$a和$b都为TRUE。
$a||$bOr(逻辑或)TRUE,如果$a或$b任一为TRUE。
布尔教育_燕十八_PHP基础巩固.013.递增递减运算符
++$a前加$a的值加一,然后返回$a。
$a++后加返回$a,然后将$a的值加一。
--$a前减$a的值减一,然后返回$a。
$a--后减返回$a,然后将$a的值减一。
$b=5;
$a=$b++;
$c=$b++;
var_dump($a,$b,$c);
//5,7,6
$a=$b--;
var_dump($a,$b);
//5,4
$a=++$b;
//6,6
$a=--$b;
//4,4
布尔教育_燕十八_PHP基础巩固.014.字符串运算符
有两个字符串(string)运算符。
第一个是连接运算符(“.”),它返回其左右参数连接后的字符串。
第二个是连接赋值运算符(“.=”),它将右边参数附加到左边的参数之后。
更多信息见赋值运算符。
Hello"
;
$b=$a."
World!
//now$bcontains"
HelloWorld!
$b.="
//now$acontains"
布尔教育_燕十八_PHP基础巩固.015.赋值运算符
基本的赋值运算符是“=”。
一开始可能会以为它是“等于”,其实不是的。
它实际上意味着把右边表达式的值赋给左边的运算数。
布尔教育_燕十八_PHP基础巩固.016.switchcase控制结构
switchcase适合用在验证多个可能值时使用;
不适合判断范围如:
60-80,;
布尔教育_燕十八_PHP基础巩固.017.while循环
while语句的含意很简单,它告诉PHP只要while表达式的值为TRUE就重复执行嵌套中的循环语句。
表达式的值在每次开始循环时检查,所以即使这个值在循环语句中改变了,语句也不会停止执行,
直到本次循环结束。
有时候如果while表达式的值一开始就是FALSE
,则循环语句一次都不会执行。
/*
example
1
$i
while
)
{
echo
++;
the
printed
value
would
be
before
increment
(post-increment)
):
print
endwhile;
do-while循环和while循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。
总是执行输出第一次结果。
0
do
//0
}
布尔教育_燕十八_PHP基础巩固.018.for循环
循环的一般要素:
初始化
(1),判断
(2),执行体(3),修改变量(4)。
for
$i++;
++)
if
break;
3
(;
布尔教育_燕十八_PHP基础巩固.019.break与continue
break结束当前for,foreach,while,do-while或者switch结构的执行。
continue跳过
break结束
布尔教育_燕十八_PHP基础巩固.020.经典实例之过桥问题
一个人身上带有100000块钱过桥,他每次过桥都要缴纳相应的过桥费,
当他身上钱的钱大于50000时,需要扣除5%的过桥费;
当他身上钱少于或者等于50000的时候,需要扣除扣除5000块钱;
请问这个人能过几次桥?
=============for==================
for($i=100000,$cont=0;
$i>
=5000;
){
if($i>
=50000){
$i*=0.95;
}else{
$i-=5000;
$cont++;
第"
$cont,"
次过桥,身上剩"
$i,"
元<
br/>
=============while=================
$i=100000;
$cont=0;
while($i>
=5000){
=50000){
$cont++;
}else{
$i-=5000;
布尔教育_燕十八_PHP基础巩固.021.经典案例之九九乘法表
//打印九九乘法表
for($i=1;
$i<
=9;
$i++){
for($j=1;
$j<
=$i;
$j++){
echo$i,"
X"
$j,"
="
$i*$j,"
nbsp;
布尔教育_燕十八_PHP基础巩固.022.经典案例之百钱买百鸡问题
“今鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。
凡百钱买鸡百只,问:
鸡翁、母、雏各几何?
”
用100文钱买来100只鸡,公鸡5文钱一只,母鸡3文钱一只,小鸡1文钱3只。
问:
在这100只鸡中,公鸡、母鸡、小鸡各是多少只?
//公鸡最多不超过20只
for($g=1;
$g<
=20;
$g++){
//母鸡最多不超过33只
for($m=1;
$m<
=33;
$m++){
//小鸡等于总数去除公鸡母鸡数的剩余数
$x=100-$g-$m;
//公鸡数+母鸡数+小鸡数=100同时公鸡钱+母鸡钱+小鸡钱=100
if($g+$m+$x==100&
$g*5+$m*3+$x/3==100){
公鸡、母鸡、小鸡各是"
$g,"
$m,"
$x,"
只<
}
布尔教育_燕十八_PHP基础巩固.023.函数概念
一段封装好的代码,可以随时调用
//定义函数
functionqiuhe(){
$c=$a+$b;
return$c;
//调用函数
echoqiuhe(4,6);
//10
布尔教育_燕十八_PHP基础巩固.024.函数定义格式
格式:
function函数名字([参数1],参数2,参数N]){
//执行语句
//return结果
命名规则:
对于函数,命名规则和变量一样,但是函数不区分大小写
布尔教育_燕十八_PHP基础巩固.025.函数执行与返回流程
函数不调用不会输出结果
函数调用时代码的执行权进入函数
当函数所以语句执行完毕,函数返回,交回执行权
或者函数碰到return语句是,函数返回,提交执行权
return可以1个值或者空值,但是不能返回2个以上的值
布尔教育_燕十八_PHP基础巩固.026.函数传参方式
functiont($a){
$a+=1;
$b=3;
t($b);
//传参$b,相当于$b的值,赋值给$a,而$a是函数内部的值,怎么变,和外界无关
functiont2(&
$a){//不建议使用引用传参,外部函数影响函数内部的值,破坏函数独立封装的特性。
$a+=1;
return$a;
echot2($b);
//6
布尔教育_燕十八_PHP基础巩固.027.函数作用域
//一下两种情况,外部变量可以直接影响函数内部值,
//但是不建议使用,破坏函数的封装性!
!
//声明全局变量global
functiont2(){
global$a;
echo$a;
//超级全局变量,在页面任何部分,包括函数,方法等,都可以直接访问。
functiont3(){
print_r($_GET);
t3();
布尔教育_燕十八_PHP基础巩固.028.动态调用函数
//可以用变量的值当作函数名,并调用函数
functionwel(){
echo'
welcome'
$hear='
wel'
$hear();
//$hear的值是wel,所以调用执行wel();
布尔教育_燕十八_PHP基础巩固.029.时间戳函数
//时间戳是指1970010100:
00:
00到现在这一瞬间已经经过的秒数
时间戳存储时间,方便调用时格式化时间
echotime();
//返回秒数
print_r(microtime());
//返回微秒和秒数
print_r(microtime(true));
//返回秒数.微秒
布尔教育_燕十八_PHP基础巩固.030.时间戳格式化
$date();
格式化一个本地时间/日期
修改服务器默认时区为东八区的方法:
打开php.ixi修改;
date.timezone=UTC为date.timezone=PRC
常用格式参数:
d日[01],j日[1],m月[05],n月[5],M三位数英文缩写月份[May],F完整英文月份[December],
N星期[7],
Y年[1990],y二位数的年[90],h十二小时制度的小时[01],H二十四小时制度的小时[13],
g无前导的十二小时制小时[1],G无前导的二十四小时制小时[13],i分钟[59],秒钟[59],
t月份应有的天数[31],L是否为闰年,a/A小写/大写的上午下午,
z年份中的第几天[200],W年份中的第几周,每周从星期一开始[41]
$time=time();
echo$date('
Y-m-d星期Nh:
i:
s'
$time);
gmdate();
//无视时区返回格林威治时间戳
布尔教育_燕十八_PHP基础巩固.031.日期解析函数
mktime(h,i,s,m,d,y);
//取得一个日期的Unix时间戳
echodate("
M-d-Y"
mktime(0,0,0,1,1,1998));
//Jan-01-1998
mktime(0,0,0,1,1,98));
//Jan-01-1998
strtootime(string$time)//将任何英文文本的日期时间描述解析为Unix时间戳
echostrtotime("
now"
),"
\n"
10September2000"
+1day"
+1week"
+1week2days4hours2seconds"
nextThursday"
lastMonday"
checkdate(m,d,Y);
//验证日期有效性
var_dump(checkdate(12,31,2000));
//bool(true)
var_dump(checkdate(2,29,2001));
//bool(false)
作业
布尔教育_燕十八_PHP基础巩固.032.字符串定义方式
//定义字符串
$str1="
helloworld"
//定义一段字符内容HTML可以说容易字符,但是起止符必须一致;
$str2=<
HTML
hello
world
HTML;
布尔教育_燕十八_PHP基础巩固.033.单双引号区别
转义
单引号:
$str1='
\'
\\\n\t\v\$'
//仅能转义少数符号
echo$str1;
双引号:
Sstr2="
\"
\\\n\t\v\$"
//能转义所有符号
echo$str2;
变量解析
$str3="
love"
I$str3you"
//双引号能解析引号内部的变量
echo'
I$str3you'
//单引号无法解析引号内变量
速度
单引号比双引号快,因为单引号转义的符号少以及不需要解析内部变量
布尔教育_燕十八_PHP基础巩固.034.字符串常用函数
1、字符串长度函数
strlen:
$str
abcdef'
strlen
6
ab
cd
7空格算一个字符
中国'
//6
UTF8编码里,中文占3个字节,GBK编码里占2字节
mb_strlen:
按字符数计算
="
中国"
mb_strlen
$str,'
utf8'
//3空格算一个字符
gbk'
//2空格算一个字符
2、查找字符串位置函数
strpos:
$mystring
$findme
$pos
strpos
使用
==
操作符。
不能像我们期待的那样工作,
因为
的位置是
0。
语句
(0
false)
的结果是
false。
false
The
string
was
found
in