传智播客PHP教学之PHP基本语法

2020-03-02 08:22:49 来源:范文大全收藏下载本文

PHP基本语法

36讲 PHP基本语法介绍 PHP数据类型介绍 .............................................................................2 37讲 整型细节说明........................................................................................................................3 38讲 布尔细节 浮点数细节 字符串细节 算术运算符① ..........................................................4 39讲 算术运算符② 比较运算符 逻辑运算符 ............................................................................5 40讲 三元运算符 类型运算符 运算符优先级 ............................................................................9 41讲 顺序控制 分支控制(if ifelse switch) 程序流程图 ............................................................10 42讲 循环控制①(for) ..................................................................................................................15 43讲 循环控制②(while dowhile) 打印金字塔案例 ..................................................................16 45讲 break语句 continue语句 常量 .........................................................................................19 46讲 函数基本概念 函数快速入门 ............................................................................................22 47讲 函数使用 函数调用初步理解 ............................................................................................25 48讲 函数调用深入理解 函数使用注意事项① ........................................................................26 49讲 函数使用注意事项② 函数作业布置 ................................................................................29 50讲 函数再回顾 自定义函数 ....................................................................................................30 51讲 位运算① .............................................................................................................................31 52讲 位运算② .............................................................................................................................32 53讲 数组介绍 数组的创建 数组的遍历 ..................................................................................34 54讲 数组的引用 数组使用细节① ............................................................................................36 55讲 数组使用细节② 数组运算符 数组作业评讲① 数组小结 ............................................38 56讲 排序介绍 冒泡排序 ............................................................................................................40 57讲 选择排序 插入排序 快速排序 ..........................................................................................42 58讲 顺序查找 二分查找 ............................................................................................................44 59讲 多维数组 数组作业评讲② ................................................................................................46

36讲 PHP基本语法介绍 PHP数据类型介绍

更新时间:2012年11月02日16时44分 来源: 1.1

单行注释 // #

php的基本语法加强 Parse : 解析 error : 错误 syntax : 语法

php 可以和 html 混合使用 ②

php 的变量的定义使用

//php中,定义一个变量要以$符号打头

$a=890;//我定义了一个变量, 该变量名叫 $a , 然后给该变量赋了一个值890 ③

php 的变量的数据类型,是变化的,php变量的数据类型是由运行时的上下文决定 ④

php区分大小写 $i = 89; $I=90; $abc=90; $Abc=900;

php 的变量的名称,应当以字母或者下划线开头,不要用数字开头,也不要用特殊字符开头.$3abc=89;

php 数据类型有哪些? 有三大类

1. 基本数据类型 1.1 整型 1.2 小数型(浮动数) 包含单精度和双精度 1.3 布尔类型 (表示真,和 假) 1.4 字符串 2.

复合数据类型 2.1 数组(array) 2.2 对象 (object) 3.

特殊数据类型 3.1 null

3.2 资源类型(resource)

37讲 整型细节说明

更新时间:2012年11月04日19时18分 来源: 基本数据类型的入门案例: ■ 整型

整数类型可以表示一个整数,比如:

$ts=1; $ts=-12; ■ 布尔类型

布尔型可以表示真或者假,比如:

$ts=true; $ts=false; ■ 小数类型

小数类型可以表示一个小数(float,double)

$ts=1.12 $ts=3.1415926 ■ 字符串类型

字符串类型可以表示一个字符串

$ts=“我是一个好人 hello” 基本概念: 何为定义一个变量 <?php

$a=90; //相当于我们定义了一个变量 $a,并赋值90 ?>

什么叫给变量赋值 <?php

$a=78;

$a=8; //表示用新的值替代 78

$a=”hello”; //表示$a 的类型变化.?>

整型的细节讨论

①在php中一个整型数据可以用十进制,也可以用八进制和十六进制 比如 :

$a = 0123; // 八进制数 (是以0开头) $a = 0x1A; // 十六进制数

0123 = 3*8的0次方 + 2*8的1次方+ 1*8的二次方 =3*1+2*8+1*64=83

0x1A= A*16的0次方 +1*16的一次方=10+16=26

$a=123=3*10的0次方+2*10的1此方+1*10的二次方=3+20+100=123 ② php的整数都是有符号数.

通过该图,我们可以看出,php的整数的二进制的最高位表示符号 ③ 通过 PHP_INT_SIZE

可以显示我们自己的机器,一个整数用几个字节表示 echo PHP_INT_SIZE;

通过PHP_INT_MAX 可以显示int 最大的数有多少 echo PHP_INT_MAX;

请问? 为什么 PHP_INT_MAX是 2147483647 我们一起推一下

请问? php 的int 型,负数最大表示多少? 负数和正数一样大 2的31次方减一

④ 如果一个整数的范围超过了最大范围,则自动变成float

38讲 布尔细节 浮点数细节 字符串细节 算术运算符①

更新时间:2012年11月06日13时53分 来源: 学生的问题?

$a=2; 问在内存中 2是怎样存在的

00000000 00000000 00000000 00000010 -> 0*2的0次方+1*2的一次方+..0=0+2=2 $a=-2 问在内存中形式

布尔类型

简单的说 布尔类型就两个值 true, 一个false; 举例: //布尔类型 $a=true; $b=false; 布尔值 FALSE 自身 整型值 0 (零) 浮点型值 0.0 (零) 空 字符串, 以及 字符串"0" 不包括任何元素的数组

不包括任何成员变量的对象(仅PHP 4.0 适用) 特殊类型 NULL (包括尚未设定的变量)

$conn=mysql_connect(“localhost”,”root”,”root”); if($conn){

echo „ok‟; }else{

echo „没有ok‟; }

浮点数的细节

1.浮点数(也叫双精度数或实数)

2.浮点数的字长和平台相关,通常最大值是 1.8e308 并具有 14 位十进制数字的精度 (这个限制很重要) ☞ 精度要从左边开始的第一个非0的数字计算.字符串的细节 $a=”hello”;

请问 $a 占用了多个是字节 5个字节 一个字符串类型可以表示多大的串?

①理论上,我们对字符串大小没有限制,即只有不超过内存就可.②我们定义字符串的时候,可以用单引号,也可以使用双引号 区别如下: $i=90;

$user1="hello$i";

$user2='hello$i';

echo 'user1='.$user1;

echo 'user2='.$user2;

从上面案例我们看出, 当一个变量包含在 “”号中时,会输出它的值,而包含在‟‟ 中是输出其字符本身.案例2

如果字符串是包围在单引号(„)中, 除了来处理 \” 时,会输出 \” 外,其它规则都一样

php数据类型的自动转换

php的表达式

所谓表达式,就是任何有值的东西.$a=90+89;

php的算术运算符 +、-、*、/、%

39讲 算术运算符② 比较运算符 逻辑运算符

php的算术运算符

更新时间:2012年11月08日17时42分 来源: +、-、*、/、% $a=90;

$b=7;

if($a%$b==0){

echo '能整除';

}else{

echo '不能整除!';

}

++ 和 – 快速入门: $a=90;

$a++; //等价于 $a=$a+1;

echo $a;

$b=89;

$b--; //等价于$b=$b-1;

echo ''.$b;

细节 我们的++ 和 – 分为前++ 后 ++ , --也分为 前-- $a=56; $b=$a++; echo $b; echo $a; 对上面代码的分析如下: $a=56;

//$b=$a++; //等价于 $b=$a; $a=$a+1;

$b=++$a; //等价于 $a=$a+1; $b=$a;

echo $b."||"; //-->$b 57

echo $a; //-->$a 57

左加 += 左减 -=

左乘 *= 左除 /= 左取模 %= $a=90;

$a-=90; //$a=$a-90; echo $a;

比较运算符

案例: $a=2; $b=2.0

//只有值相等就为true if($a= =$b){

echo „$a==$b‟; }

//全等,要求$a 和 $b 值和类型要相等 if($a= = =$b){ }

对 != != = 说明 //只有值不相等,则为true

if($a!=$b){

echo '$a!=$b';

}

//只要值不相等,或者类型不相等,则为true

if($a!==$b){

echo '$a!==$b';

}

请编写一个程序,该程序可以接收两个数(可以是整数,也可是小 数),并判断两个数是大于?小于?还是等于? 对应的案例: <?php $a=123;

$b=90;

if($a>$b){

echo '$a>$b';

}

if($a

{

echo '$a

}

if($a==$b){

echo '$a==$b';

} ?> 逻辑运算符

要求大家掌握的知识点有: 搞清每个逻辑运算的规则 案例 $a=10; $b=7;

if($a++>8 || $b++>7){

echo 'ok!';

}

echo 'a='.$a.'b='.$b; //把结果填写 $a=10; $b=7;

if($a++>10 && $b++>7){

echo 'ok!';

}

echo 'a='.$a.'b='.$b; $a=10; $b=7;

if($a++>18 && $b++>7){

echo 'ok!';

}

echo 'a='.$a.'b='.$b;

☞ 面试题: and && 都表示逻辑与 ,他们的区别在什么地方 主要体现在优先级上面 and 的优先级 and

40讲 三元运算符 类型运算符 运算符优先级

php基本语法-三元运算符 基本语法

表达式1 ? 表达式2 : 表达式3 规则:

更新时间:2012年11月11日18时53分 来源: 如果表达式1 的运算结果是 true, 则取 表达式2 的值,否则,取表达式3的值.举例 : <?php

$a=90;

$b=180;

$c=$a>$b? (12-10):"hello,world";

echo 'c=='.$c; ?>

php 的字符串运算符 案例:

$a="hello,world";

$b=123;

$c=$b.$a; //$a 具体表示内容和 $b 表示内容拼接

echo $c;

从上面案例我们看出, 当两个变量(基本数据类型) 用 .连接的时候,就表示把他们的内容拼接

类型运算符(了解)

基本语法是: instanceof 用于确定一个 PHP 变量是否属于某一类 cla 的实例,通常在面向对象开发中可能用的.cla Dog{}

cla Cat{}

//创建一个对象

$cat1=new Cat;

//var_dump($cat1 instanceof Dog);

//在实际开发中,我们可能需要去判断某个变量是否是某个类型

if($cat1 instanceof Cat){

echo '$cat1 是一只猫';

}

运算符优先级的说明: //****运算优先级*****

☞ 如果将来你们有一个表达式很复杂,建议使用() 来指定其运算优先级

$a=3;

$b=++$a*3;

echo $b;

41讲 顺序控制 分支控制(if ifelse switch) 程序流程图

更新时间:2012年11月16日10时30分 来源:

php程序的三大流程控制 ①

顺序控制(从上到下,从左到右) $a=7;

echo “a=”.a;

echo “hello!”;

$a++;

echo “a=”.a;

echo “O(∩_∩)O”;

$a++;

echo “a=”+a;

所谓顺序控制流程,就是不加控制的流程,默认情况,会按照,顺序来执行你编写的代码 ②

分支控制

一个简单的定义: 有选择的来执行我们的代码.分为 1.单分支 2.双分支 3 多分支 1.

单分支的基本语法结构 if(条件表达式){

语句;

//...//....}

这里我们,这里的条件表达式不管多复杂,最总运算的结果就是 true 或者 false; 快速入门:

编写一个程序,可以输入人的年龄,如果该同志 的年龄大于18岁,则输出 “你年龄大于18,要对 自己的行为负责!” $age=7;

if($age>18){

echo '你的年龄大于18';

} 2.

双分支 基本语法结构 if(条件表达式){

//n多语句; }else{

//n多语句; }

编写一个程序,可以输入人的年龄,如果该同志

的年龄大于18岁,则输出 “你年龄大于18,要对

自己的行为负责!”。否则 ,输出”你的年龄不大

这次放过你了.” 代码: $age=4;

if($age>18){

echo '你的年龄大于18';

}else{

echo '你的年龄小于18';

}

echo '程序结束!';

3. 多重分支 基本语法结构是 if(条件表达式){ //n多语句

}else if (条件表达式){ //n 多语句 }else if(条件表示式){ //.

}//这里可能还有更多的else if else{ }

☞ 对上面的结构请注意:

(1) else if 可以有一个,也可以有多个 (2) else 可以没有 快速入门案例:

编写一个程序,可以输入人的年龄,如果该同志

的年龄大于18岁,则输出 “你年龄大于18,要对

自己的行为负责,送入监狱”。如果该同志的年

龄大于10岁并且小于等于18,则输出 “你的年龄

也不小了,把你送少管所.”。其它情况,则输出

“小孩子,下次注意”。 代码如下: $age=34;【1】 if($age>18【2】){

echo '你要被送入监狱';【3】 }else if($age>10 【4】 && $age

echo '下次注意';【7】 }

echo "over";【8】 流程分析图:

switch分支语句 基本语法结构 switch(表达式){ case 常量1: //n多语句; break; case 常量2: //n多语句 break; defual:

//n多语句;

break; } ☞ 请注意:

1. case 语句有一到多

2. defaul 语句可以没有(根据自己代码的业务逻辑) 3.

通常,在case 语句后,要带break ,表示退出switch语句 4.

常量的类型 (int, float, 字符串, 布尔型) 快速入门案例: 请编写一个程序,该程序 可以接收一个字符,比如 : a,b,c,d,e,f,g

a表示星期一,b表示星期 二 … 根据用户的输入显 示相依的信息.要求使用 switch 语句完成 $myChar="b";

switch($myChar){

case "a":

echo '今天星期一,猴子穿新衣';

break;

case "b":

echo '今天星期二,猴子当小二';

break;

case "c":

echo '今天星期三,猴子爬雪山';

break;

default:

echo '没有匹配的日期';

}

echo 'okokook'; 一个案例: $i=“11“;

switch ($i){

case 10:

echo '10';

case 1.3:

echo '11';

break;

default:

echo 'hello';

//break;

case 11:

echo '12';

break;

}

该案例得出一个结论: //最终的结论是:

首先按照case顺序进行配置,如果一个都没有匹配到,则执行

default语句的内容,直到遇到break,则退出switch Default语句放置的位置对执行的结果没有影响 如果$a=”1”,则会自动转化为整型1

42讲 循环控制①(for)

更新时间:2012年11月19日15时24分 来源: 学生的问题: 老师,说一下if语句和switch的区别,及应用场景。

回答: 从我们学习if 和 switch 分支看,if 对某个范围的判断,而switch是对一个点的判断, 所以我们可以这样去选择他们: 应用场景: 当我们 的分支就是几个点的时候(比如判断坦克的方向),就应当使用swtich ,如果你的分支是几个区域(范围)的判断,则考虑使用if ①

循环控制流程 首先说 for 循环控制 基本语法结构

for(循环初值; 循环的条件; 步长){

//n多语句; }

为什么需要循环控制 ?

问题 : 请输出9000000句,”你好,北京” 这样一问题: 怎样让我们的某段代码,循环的执行 分析图

for($i=0;$i

echo '你好,北京';

}

echo "over";

内存图:

43讲 循环控制②(while dowhile) 打印金字塔案例

更新时间:2012年11月20日11时54分 来源: while循环 基本语法结构是 while(循环条件){

//循环体 ,语句 }

案例: 使用while来打印 10句”你好北京 ” 代码:

//*****while循环*****

$i=0;//$i循环控制变量

while($i

echo '你好北京'.$i;

//这里我们对循环控制变量,自增.

$i++;

} 流程分析图:

do..while循环控制 基本语法结构 do{

//循环体 }while(循环条件);

快速入门: 循环的显示 10句,”你好北京”; $i=0;【1】//循环控制变量 do{

echo 'dowhile你好北京'.$i;【2】 //对循环控制变量修改

$i++;【3】//这里有程序员自己控制步长.}while($i

综合案例: 要求:

请使用循环控制语句,输出一个空心的菱形 ->两个思想

1.死去活来 2.先易后难 3.建立自己的函数库和工具库(积累)

*

* *

* *

* *

*

但是这个菱形的层数可以灵活的变化.比较困难-------》简单化

案例如下:

//打印出金字塔的一半

//死去活来

//外层的for循环控制层数

for($i=1;$i

//内层控制每层*的个数

for($j=1;$j

echo '*';

}

echo '';

}

//打印出整个金字塔

//如果打印3层

// * * -> 1 2个空格 1个* (1-1)*2+1=

1 // ** *** -> 2 1个空格 3个* (2-1)*2+1=

3 // *** ***** -> 3 0个空格 5个* (3-1)*2+1=

5$n=20;

for($i=1;$i

//在打印*前,先打印空格

for($k=1;$k

echo " ";

}

//内层控制每层*的个数

for($j=1;$j

echo '*';

}

echo '';

}

请大家打印出一个空心金字塔

*

* *

**** 思路:

我们可以这样考虑,在给每行输出* 号的时候,要有判断,(该给*号给*号,该给空格给空格)

思路肯定分析:

和一个空心的菱形

45讲 break语句 continue语句 常量

更新时间:2012年11月23日15时22分 来源:

循环相关的语句-break

基本的概念: 表示结束当前的 for、while、do..while、switch, 流程, 可以给一个数字,表示退出到第几层.快速入门案例:

for($i=0;$i"; if($i==10){

break; } }

快速入门的案例2: $i=0; while(++$i){ switch($i){ case 5:

echo "quit at 5"; break; case 10:

echo "quit at 10"; break 2; default: break; }

}echo '$i='.$i; 结果是: quit at 5 quit at 10 $i=10 分析图:

从上面的案例,我们得到几个结论: 1. break语句 默认跳出 1层

2. break语句 后面带的数字,不能超过实际可以跳出的循环层数,否则,会报fatal error 循环相关语句-continue

基本概念: continue 用于结束本次循环剩余代码,从新开始新的一次循环(如果条件为真,就继续执行), continue 后面也可以带数字,表示从第几次循环重新开始 快速入门:

for($i=0;$i

echo '$i='.$i.""; } 结果 $i=0 $i=1 $i=2 $i=4 $i=5 $i=6 $i=7 $i=8 $i=9 $i=10 $i=11 $i=12 hello 流程

goto语句

基本概念: 通过goto语句我们可以将程序跳转到指定的地方去执行.goto 标签; 标签: 语句; 快速入门案例: goto a; echo 'aa'; a: echo 'bb'; 快速入门案例2

for($i=0,$j=50; $i

if($j==17) goto end; } }

echo "i = $i"; end:

echo 'j = 17 '.$i."||".$j; 结果: j = 17

php中常量 说明:

所谓常量,我们可以理解成就是特殊的变量: 体现在 1. 定义常量前面不需要 $ 2. 常量一旦定义,则不能修改其值 3.

常量在定义的时候,就需要它赋初值.4.

常量可以通过 define 或者 const

5.

常量的名称,我们一般说是 全部大写,然后用下划线间隔

6.

什么时候需要使用常量: 在程序中我们不希望某个值变化,则考虑使用常量,比如圆周率,税率....快速入门案例: <?php

//第一种方法

define("TAX_RATE",0.08);

echo TAX_RATE;

//第二种方法(php5.3)

const TAX_RATE2=0.1;

echo '-'.TAX_RATE2; ?>

46讲 函数基本概念 函数快速入门

函数讲解

提出一个问题? 请大家完成这样一个需求:

更新时间:2012年11月25日18时08分 来源: ①输入两个数,再输入一个运算符(+,-,*,/),得到结果.如果我们不考虑使用新的技术,用我们现在的知识结构,完成

<?php

//请大家完成这样一个需求:

//①输入两个数,再输入一个运算符(+,-,*,/),得到结果.$num1=34;

$num2=90;

$oper="-";

//$res表示结果

$res=0;

switch($oper){

case "+":

$res=$num1+$num2;

break;

case "-":

$res=$num1-$num2;

break;

case "*":

$res=$num1*$num2;

break;

case "/":

$res=$num1/$num2;

break;

default:

echo '运算符号有误!';

}

echo "计算结果是=".$res; ?>

从该代码分析,我们发现,如果别的页面也需要这样的功能,则代码的复用性不好--->函数引出 现在我们使用函数,来快速体验好处,示意图:

funcs.php (这个文件,我们定义了一个函数) <?php

//我们一个计算,+* / 的代码集合->函数

//1.function 是一个关键字

//2.jiSuan 函数名(由程序员取名)

//3.$num1,$num2,$oper 是函数的参数列表(形参)

function jiSuan($num1,$num2,$oper){

//$res 表示计算的结果

$res=0;

switch($oper){

case "+":

$res=$num1+$num2;

break;

case "-":

$res=$num1-$num2;

break;

case "*":

$res=$num1*$num2;

break;

case "/":

$res=$num1/$num2;

break;

default:

echo '运算符号有误!';

}

//表示返回一个结果.

return $res;

}

$a=12;

$b=45;

$type="+";

$res=jiSuan($a,$b,$type);

echo "res=".$res; ?>

函数调用的流程图 :

一个通俗理解图:

为了加深大家对函数调用的理解我们,举例(自己调用自己的案例) <?php

function abc($n){

if($n>2){

abc(--$n);

}else{

echo '$n='.$n."";

}

}

abc(4); ?>

函数自己调用自己-》这个就称为递归调用.

函数的深入使用讨论 函数的基本结构

function 函数名(参数列表){

//函数体;

//return 语句; }

参数列表可以是多个参数

参数可以多个,同时,其数据类型可以是php语言支持的任意类型

函数名开头的字母,以_ 或者 A_Z 或者 a-z ,不要用数字或者特殊字符开头 ④

函数名不区分大小写 ,这个与变量不一样.function Abc(){} 和 function abc(){} 是同一个函数.

一个自定义函数中的变量是局部的,函数外不生效 案例:

function abc3()

{

$a=45;

echo 'a='.$a;

}

abc3();

echo 'aa='.$a;// 这里会报一个错误: Undefined variable: a ☞ 在php中有三种提示 notice : 注意 waring: 警告 error : 错误

使用global全局变量的时候,可使用在函数外的变量 案例,和分析图 $a=12; function abc3(){

//global $a;//我要在abc3中使用到外层 $a; $a+=45; } abc3(); echo $a; 分析图:

49讲 函数使用注意事项② 函数作业布置

更新时间:2012年11月30日16时20分 来源: ⑦

如果在函数中,我们不希望使用某个变量,或者是希望彻底的不再某个变量,则可以使用 unset(变量名) ; 将该变量彻底删除.$a=12;

function abc3($a){

unset($a);//表示不再abc3函数范围内,不在使用$a,后面需要全新定义;

$a=45;

}

abc3($a);

echo $a;

在php函数中,我们可以给某些参数,赋一个默认的值.案例说明:

function abc($b,$a=2){

$res=$a+$b;

return $res;

}

$e=70;

echo abc($e).' ||';

echo abc($e,90);

$f=70;

echo abc($e,$f);

php传递变量的时候,默认是值传递,如果需要引用(地址)传递,可以使用 &变量名; 举例说明:

50讲 函数再回顾 自定义函数

更新时间:2012年12月03日15时01分 来源: 回顾45讲49讲函数内容,请参考45讲到49讲笔记内容。

函数分为两大类 ①

自定义函数 自己写的函数 ②

系统函数 php语句本身给你提供,让你直接使用的函数, php设计者认为,在项目开发的过程,很多人都会用的一下功能,则就直接提供给你?

比如: 我要取一个数的绝对值? <?php

funct myAbs($num){

if($num

return -$num; }else{

return $num; } } ?>

由系统提供.

51讲 位运算①

更新时间:2012年12月04日17时47分 来源:

位(bit)运算

二进制

所谓二进制就是逢二进一 (0,1), 因为使用二进制只有 0, 1 两个数,简单,易于电子方式实现 , 同时,通过0,1 组合可以表示任意一个数.

☞ 二进制有三个重要的概念 1.

原码

用二进制来表示一个数,这个码就是原码.

1 ------> 原码 00000000 0000000 0000000 00000101 = 1*2的零次方+0*2的一次方+1* 2的二次方=1+0+4=5 2.

负数的反码=它的原码符号位不变,其它位取反(0->1,1->0) 反码(正数的反码和它的原码一样 , 负数反码 是 符号位不变其它位取反) 补码(正数的补码和它的原码一样,负数的补码是 它的反码+1) 举例 -1

-1的原码 10000000 00000000 00000000 00000001 -1的反码 11111111 11111111 11111111 11111110 -1 的补码 11111111 11111111 111111111 11111111 3. 在计算机运算的时候,都是以补码的方式来运算的 4+5=>计算机 4-5=4+(-5)

这句话意思就是,不管一个数是正数还是负数,都要被转成补码,然后进行运算.

位运算一览表

该图的前面四个是位运算 其运算规则是:

按位与& : 两位全为1,结果为

1 按位或| : 两位有一个为1,结果为1

按位异或 ^ : 两位一个为0,一个为1,结果为1

按位取反 : 0->1 ,1->0 看看前面给出的题,是否完成 ~2=?

步骤 : 首先要求出 2的补码 2是正数 所以 原码=反码=补码 2 原码

00000000 00000000 00000000 00000010 ~2

11111111 11111111 11111111 11111101 (补码)->原码 ? 负数的 原码-》反码-》补码

11111111 11111111 11111111 11111101-> 推出其反码 (对补码-1)

11111111 11111111 11111111 11111100 推出原码

52讲 位运算②

更新时间:2012年12月06日10时57分 来源: 10000000 00000000 00000000 0000011 -> -

3 ~-5=?

-5 的 补码找出来.

-5 原码 10000000 00000000 00000000 00000101 -5 反码 11111111 11111111 11111111 11111010 -5 补码 11111111 11111111 11111111 11111011

~-5取反 00000000 00000000 00000000 00000100 (补码) 4

2&3=?

2&3 首先要找到 2 和 3的补码

2 的补码 00000000 00000000 00000000 00000010

3 的补码 00000000 00000000 00000000 00000011

2&3 00000000 00000000 00000000 00000010 [补码

2|3=?

2 的补码 00000000 00000000 00000000 00000010

3 的补码 00000000 00000000 00000000 00000011

2|3

00000000 00000000 00000000 00000011

2^3

2 的补码 00000000 00000000 00000000 00000010

3 的补码 00000000 00000000 00000000 00000011

2^3 00000000 00000000 00000000 00000001

13&7=?

5|4=?

-3^3=?

位移运算

在php 中位运算有两种 >> (右移)

算术右移:低位溢出,符号位不变,并用符号位补溢出的高位

算术左移: 符号位不变,低位补0 根据我们前面的规范,来完成几个案例 $a=1>>2; 1 的补码

00000000 00000000 00000000 00000001 1>>2

00000000 00000000 00000000 00000000

$b=-1>>2;

步骤 -1 的补码

-1 的原码 10000000 00000000 00000000 00000001

-1 的反码 11111111 11111111 11111111 11111110

-1 的补码 11111111 11111111 11111111 11111111

-1 >> 2

11111111 11111111 11111111 11111111 补码

结果

补码->原码

反码 11111111 11111111 11111111 11111110

原码 10000000 0000000 00000000 00000001 $c=1

00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000100

$d=-1

53讲 数组介绍 数组的创建 数组的遍历

更新时间:2012年12月07日17时49分 来源: 10进制->2进制 7 对 除

2数组(重点) 提出一个问题?

一个养鸡场有6只鸡,它们的体重分别是3kg,5kg,1kg,3.4kg,2kg,50kg 。请问这六只鸡的总体重是多少?平均体重是多少? 请你用现在掌握的技术编一个程序。 现在我们使用现有的技术来解决问题 array01.php $hen1=3;

$hen2=5;

$hen3=1;

$hen4=3.4;

$hen5=2;

$hen6=50;

如果我们的变量很多,如果我们分别取变量名,显示程序无法控制.怎么办?

我们可以使用一个新的数据类型array 数组,来统一个管理这一组数

什么是数组

可以用于存放多个数据的数据类型,我们称为数组 快速体验案例: 用数组来解决养鸡场的问题 //使用数组来完成案例

$hens[0]=3;

$hens[1]=5;

$hens[2]=1;

$hens[3]=3.4;

$hens[4]=2;

$hens[5]=50;

$hens[6]=30;

$allWeight=0;

//遍历整个数组

//有时为了知道某个数组共有多少个元素,可以使用系统函数count

echo "共有".count($hens)."只鸡";

for($i=0;$i

echo "第".($i+1)."只鸡体重=".$hens[$i]."";

$allWeight+=$hens[$i];

}

echo '总体重是='.$allWeight.'平均体重='.$allWeight/count($hens); 小结: 该案例重点说明数组基本使用,细节后面说

数组创建

在php中,数组就是关键字和值的集合, 我们可以这样创建 ①

创建数组 $arr[0]=123; $arr[1]=90; $arr[2]=8; 几个概念:

[0] -> 这个我们称为下标,或者称为 关键字 $arr[0] -> 这个称为数组的一个元素.

$arr[0]=123; 123 表示该$arr[0]元素对应的值 $arr –》这个是该数组的名称.

在php数组中,元素存放的值可以是任意数据数据类型 , 举例说明: <?php

$arr[0]=123;

$arr[1]="hello";

$arr[2]=45.6;

$arr[3]=true;

$arr[4]=null;//即使放入了一个null,也要占一个空间

echo "数组大小".count($arr);

//遍历一下

for($i=0;$i

echo ''.$arr[$i];

} ?>

创建数组的第二种方法 基本语法

$数组名=array(值,.......); 举例说明:

$arr=array(1,90,"helllo",89.5);

//遍历一把

for($i=0;$i

echo "".$arr[$i];

}

第三种方式创建数组(在默认情况下,我们的元素的下标,是从0开始给你编号,但是实际上,也可以自己指定) 基本语法

$arr[„logo‟]=”北京”; $arr[‟hsp‟]=123; ....或者 $arr=array(”logo”=>”北京”,”hsp”=>123,4=>678); 案例演示:

$arr[0]=123;

$arr[1]=90;

//遍历

/* for($i=0;$i

echo ''.$arr[$i];

}*/

//这个foreach适用范围更广

foreach($arr as $key2=>$val2){

echo $key2."=".$val2."";

}

54讲 数组的引用 数组使用细节①

更新时间:2012年12月09日20时22分 来源: ☞ 注意事项

①如果我们创建一个数组的时候,没有给某个元素指定下标,php就会自动的用目前最大的那个个下标值(整数), 加上一作为该元素的下标(关键字)

$arr=array(5=>"logo",567,90);

//我要访问"logo"这个值

echo $arr[5];

echo "".$arr[6];

②如果我们给某个元素的下标一样,则会覆盖原来的值: $arr=array(5=>"logo",567,90);

//我要访问"logo"这个值

$arr[5]="yes";//替换某个元素值

echo $arr[5];

echo "".$arr[6];

如果我们使用true ,false null 作为key, 则应当怎样访问 $arr[true]="hello"; //==> $arr[1]

$arr[false]="world";//==> $arr[0]

$arr[null]="北京";//==> $arr[null] 或者 $arr[""];

//null""

echo $arr[0];

echo "".$arr[null]; ⑤

//我们通常可以使用print_r来显示这个数组情况

print_r($arr);

echo "";

//var_dump可以更加详细的显示数组的信息

var_dump($arr);

访问数组的时候,不要越界比如: $arr=array(56,100,101);

echo $arr[2];//数组越界

echo "hello";

一维数组的引用 基本语法: $数组名[键值];

如果你写的键值不存在,则会报告: Notice: Undefined offset

一维数组使用陷阱 //*****一维数组引用陷阱

$arr[bar]="hello,world"; echo $arr[bar]; 这样使用时危险!!!!

php的数组可以动态的增长 $a=array(2,3);

//这里说明php的数组是可以动态增长.

$a[3]=56;

echo $a[2];

php的数组相关的函数说明 ①

count 函数 基本用法是

count($数组名); 可以统计该数组共有多少元素.②

is_array

print_r 和 var_dump ④

explode 对字符串进行分割 案例:

$str="北京&顺平&天津&宋江&林冲";

//在实际开发中,涉及到字符串的拆分,可以考虑

$arr=explode("&",$str);

print_r($arr);

php数组遍历的四个方法

☞ 如果使用 for while do..while 要确定该数组的下标是从 0开始顺序排放 $colors = array('red', 'blue', 'green', 'yellow');

//for while do_while

//for

for($i=0;$i

echo "".$colors[$i];

}

//while

$i=0;//循环控制变量

while($i

echo "".$colors[$i];

$i++;

}

//do..while

$i=0;//循环控制变量

do{

echo "".$colors[$i];

$i++;

}while($i

//foreach

echo "*********";

foreach($colors as $k=>$v){

echo "$k=$v";

}

55讲 数组使用细节② 数组运算符 数组作业评讲① 数组小结

更新时间:2012年12月11日16时58分 来源:

使用unset函数可以销毁某个元素,也可以销毁某个变量,销毁该元素后,关键字不会重新组合.$arr[0]=123;

$arr[1]=456;

$arr[2]="hello";

//比如现在我要删除 $arr[1] 元素

echo "**删除前****";

echo $arr[1];

unset($arr[1]);

echo "**删除后****";

echo $arr[1];

echo print_r($arr);

数组运算符(了解即可)

$a = array("a" => "apple", "b" => "banana");

$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");

$c = $a + $b; //$b数组的键和值加到$a

echo "\$a + \$b result";

var_dump($c); // "a" => "apple", "b" => "banana" "c" => "cherry"

echo "";

$c = $b + $a; //"a" => "pear", "b" => "strawberry", "c" => "cherry"

echo "\$b + \$a result ";

var_dump($c);

数组的案例:

为加强大家对数组的理解,我们再给大家出一个题,我们一起完成.在运动会上,五个小孩比赛滑轮,他们的滑完100米,分别用了10s、12s、5.7s、9s、14s,请编写一个程序,计算他们的平均时间?[array03.php] 时间保留到小数点后两位.

请输入五个小孩的成绩,用空格隔开

传智播客 PHP程序员笔记第一天

传智播客 韩顺平php从入门到精通 6178讲面向对象课堂笔记

PHP教学工作总结

传智播客 韩顺平轻松搞定网页设计(html+c+javascript) 之javascript

PHP学习之输出控制函数

黑马程序员php培训:php基础教程之MySQL目录

PHP 程序员学数据结构与算法之《栈》

英语教学随笔之语法教学

对外汉语教学之语法教学教案

每日教学SQL部分基本语法

《传智播客PHP教学之PHP基本语法.doc》
传智播客PHP教学之PHP基本语法
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
下载全文