外链论坛

 找回密码
 立即注册
搜索
查看: 6|回复: 0

PHP从基本到入门(一)

[复制链接]

2733

主题

155

回帖

9924万

积分

论坛元老

Rank: 8Rank: 8

积分
99240135
发表于 7 小时前 | 显示全部楼层 |阅读模式

文案为连载文案PHP入门的第1

意见先阅读前篇文案小白教你PHP基本

运算符

算术运算符

基本

符号有:+ - * / %

说明:

1,她们都是针对数字进行的运算;

2,倘若她们的两边有不是数字的数据,就会(自动)转换为数字

3,其中取余运算(取模运算)%,它只针对“整数”进行运算,倘若不是,会自动截取为整数。

11. 3 % 3 相当于 11 % 3;

11.8 % 3. 8 相当于 11 % 3;

自增自减运算符:

常规:对数字进行自加1或自减1。

字符串: 只能自增,且自增的效果便是“下一个字符”,其只能针对字母或数字进行自加:

布尔值递增递减无效

null递减无效,递增结果为1

字符串自增的例子:

前自增和后自增的区别(自减类似)

一般咱们在循环中,举荐运用前加加,例如

for($i = 1; $i < 10000; ++$i){ ....... }

演示前加加后加加进行1千万次的“效率比较”:

比较运算符

符号:> >= < <= == != === !==

通常比较:是针对数字进行的体积比较

==和===比较:前者一般叫做模糊相等的比较,后者叫做精确相等的比较(仅有数据的类型和数据的值/内容,都相等,才是全等的)。必须能够找到手册的“类型比较表”:附录》php类型比较表:

不要对浮点数直接进行体积比较

平常区别类型(标量类型)数据之间的比较规律:

倘若比较的数据中,有布尔值,转为布尔值比较,布尔值比较仅有一个规则:true>false

否则,倘若有数字值,就转为数字值比较:这便是常规比较。

否则,倘若两边都是“纯数字字符串”,转为数字比较

否则,就按字符串比较。字符串比较的规则是:

对两边的字符串,一个一个从前往后取出字符并进行比较,谁“先大”,结果便是它大。

“abc” > true //? false

“abc” > false //true

“0” > false //false

3 > “12”; //false

3 > “12abc”; //false

“3” > “12” //false

“abc” > “c”; //false,后者大

“abc” > “ab123cde”; //true 由于这儿”c”大于”1”

“3abc” > “12abc”; //true, 由于”3”大于“1”

1 > “a”; //? true

“1” > “a” //? false

规律运算符

规律运算符都是针对“布尔值”进行的运算。

倘若不是布尔值,就会转换为布尔值进行;

布尔值仅有2个:true,false

基本运算规则(真值表):

规律与规则:

true && true ==>> true

true && false ==>>false

false && true ==>>false

false && false ==>>false

总结:仅有2个都是true,结果才是true

只要有一个是false,结果便是false

规律或规则:

true || true ==>> true

true || false ==>>true

false || true ==>>true

false || false ==>>false

总结:仅有2个都是false,结果才是false

只要有一个是true,结果便是true

规律非规则:

!true ==>> false

!false ==>> true

规律运算符的“短路现象”:

规律与短路:

结果:倘若一个语句中,经过与运算需要进行多项判断,况且区别的判断拥有显著区别的“繁杂程度”,则咱们应该将简单的判断放在前面,此时咱们能够利用短路现象以达到提有效率的目的。

规律或短路:

结果:倘若一个语句中,经过或运算需要进行多项判断,况且区别的判断拥有显著区别的“繁杂程度”,则咱们应该将简单的判断放在前面,此时咱们能够利用短路现象以达到提有效率的目的。

字符串运算符

1,符号仅有一个:. 衍生出另一个: .=

2,含义:便是将这个符号两边的字符串连接起来;

3,倘若两边不是字符串,就会自动转换为字符串,而后连接起来。

“ab” . 3 ==>> “ab3”;

“12” . 3 ==>>”123”

12 . 3 ==>> “123”

赋值运算符:

一个基本赋值运算符: =

形式: $变量名 = 值;

理解: 将右边的值(不管做了多少运算),赋值给左边的变量。

若干个衍生的赋值运算符:

+= 加等: 形式: $变量名 += 值;

理解: 相当于: $变量名 = $变量名 + 值;

-= 加等: 形式: $变量名 -= 值;

理解: 相当于: $变量名 = $变量名 - 值;

*= /= %= .= 其都能够认为是以上形式的一种简化版。

要求(三目,三元)运算符

仅有一个,形式如下:

数据值1 ? 数据值2 : 数据值3

含义:

对数据值1进行判断,倘若为“真”,则该运算符的运算结果便是数据值2,否则便是数据值3;

它是这般一个流程掌控规律判断)语句的简写形式:

if( 数据值1 ){

$变量名 = 数据值2;

else{

$变量名 = 数据值3;

重视倘若数据值1不是布尔值,会转换为布尔值;

$score = 66; //分数

$valuation = $score >= 60 ? “及格” : “不及格”; //结果为“及格”

$score = 56; //分数

$valuation = $score >= 60 ? “及格” : “不及格”; //结果为“不及格”

$score = 56; //分数

$valuation = $score ? “及格” : “不及格”; //结果为“及格”,这儿可能就偏离的本意!!

位运算符

基本规定

1,位是什么?便是2进制数字的每一个“位”,一个整数数字,有(由)32个位形成

2,位运算符是仅仅针对整数进行的运算符;

3,位运算符有如下几个

&: 按位与;

|: 按位或;

~: 按位非;按位取反;

^: 按位异或;

4,位运算符的基本语法规则:

按位与基本规则:

1 & 1 ==>> 1

1 & 0 ==>> 0

0 & 1 ==>> 0

0 & 0 ==>> 0

按位或基本规则:

1 | 1 ==>> 1

1 | 0 ==>> 1

0 | 1 ==>> 1

0 | 0 ==>> 0

按位非基本规则:

~1 ==>> 0

~0 ==>> 1

按位异或基本规则:

1 ^ 1 ==>> 0

1 ^ 0 ==>> 1

0 ^ 1 ==>> 1

0 ^ 0 ==>> 0

可见,按位异或的规则是:相同为0,区别为1

整数的按位与运算(&)

形式:

$n1 & $n2; //n1,n2是2个任意整数;

含义:

将该2个整数的二进制数字形式(重视,都是32位)的每一个对应位上的数字进行基本按位与运算之后的结果!

重视她们运算的结果,其实仍然是一个普通的数字(10进制)。

示例图示(只用8个位来演示):

$r1 = 10 & 20;

10的2进制0000101020的2进制00010100&运算结果:00000000

代码验证:

整数的按位或运算:

形式:

$n1 | $n2; //n1,n2是2个任意整数;

含义:

将该2个整数的二进制数字形式(重视,都是32位)的每一个对应位上的数字进行基本按位或运算之后的结果!

重视她们运算的结果,其实仍然是一个普通的数字(10进制)。

示例图示(只用8个位来演示):

$r1 = 10 | 20;

10的2进制0000101020的2进制00010100|运算结果:00011110

则结果该数据值体积为: 1*24 + 1 * 23 + 1*22 + 1* 21 + 0 = 16 + 8 + 4 + 2 = 30

代码验证:

整数的按位左移运算

形式:

$n1 << $m

含义:

将十进制数字n1的二进制数字形式(是32位的)的每一个位上的数字都一次性往左边移动m位,

并将右边空出来的位置补0,左边冒出去的不管,这般操作之后得到的结果。

示例图示(只用8个位来演示):

$r1 = 10 << 2;

10的2进制00001010左移2位后00101000则结果为:25023000

可见,结果为:25 + 23 = 32 + 8 = 40

代码验证:

弥补知识:原码,反码,补码

原码:

便是一个二进制数字,从“数学观念”上来表达出的形式。其中,咱们规定:

一个数字的最左边一位是“符号位”,0暗示正数,1暗示负数;

例如

反码:

正数的反码便是其本身(即不变);

负数的反码是:符号位不变,其他位取反;

例如

补码:

正数的补码便是其本身(即不变);

负数的补码是:符号位不变,其他位取反后+1——即反码+1

一个小提示:计算机内部的运算,实质全都是运用补码进行的,况且运算的时候,符号位再也不区分,直接当做“数据”参与运算:

示例1:

5+3:

示例2: 5-3:

实质上,cpu内部,会将“减法”运算,转换为“加法运算”,即:5 + (-3)

位运算符的应用:管理一组事物的开关状态

什么是开关状态?

现实中,有非常多数据都是仅有2种结果(值)的,对应的其实便是咱们的布尔类型的值。

这儿所说管理一组事物的开关状态,应该理解为其实便是管理若干个仅有2个状态的“数据符号”。

例如:有5个灯泡,对应5个状态数据。

这5个灯泡,就有 25 种状态呢?

这儿的管理目的是:运用一个变量,就能够表达若干个数据的“当前状态”。详细有3个任务:

1,经过该变量,能够获知任何一个数据(灯泡)的当前状态。

2,经过该变量,能够将一个一个数据的状态“关闭”;

3,经过该变量,能够将一个一个数据的状态“开启”;

看代码!!!

数组运算符

有这些:

+: 数组联合,能够理解为“数组串联”。

将右边的数组项合并到左边数组的后面,得到一个新数组。如有重复键,则结果以左边的为准

$arr1 = array(5=>10, 8=>20, 10=>30);

$arr2 = array(3=>33, 2=>22);

$r1 = $arr1 + $arr2; //结果为:array(5=>10, 8=>20, 10=>30, 3=>33, 2=>22)

另一个有重复键的例子:

$arr1 = array(5=>10, 8=>20, 10=>30);

$arr2 = array(8=>33, 2=>22);

$r1 = $arr1 + $arr2; //结果为:array(5=>10, 8=>20, 10=>30, 2=>22)

= =:倘若两个数组拥有相同的键名和键值(能够次序区别,或类型区别),则返回true

$arr1 = array(3=>33, 2=>22);

$arr2 = array(2=>”22”, 3=>”33” );

此时,$arr1,和 $arr2是相等的( = = )

!=

= = =: 倘若两个数组拥有相同的键名和键值且次序和类型都一样,则返回true

!= =

错误掌控运算符@:

一般就用在一个地区

$link = @mysql_connect(“数据库服务器位置”, “用户名”, “秘码”);

功效是:

倘若该连接数据的语句失败(例如连接不上),则屏蔽该失败的错误提示!

运算符的优先级

运算符,都有优先级问题!

记住以下几条就能够了:

认识到运算符有优先级问题

括号最优先,赋值最落后(一般

先乘除后加减

大致:单目运算符〉算术运算符〉比较运算符〉规律运算符(除了“非”运算)

能查到手册: 语言参考》运算符》运算符的优先级。

流程掌控

流程图基本符号:

只是人们习惯上运用有些图形符号,以表率必定的含义,帮组别人理解流程过程。

if分支结构

基本语法形式如下:

if (要求判断1){

分支1;

}

else if (要求判断2){

分支2;

}

else if (要求判断3){

分支3;

}

。。。。。。

else {

//else分支

}

说明:

1,其中,绿色的else if部分能够重复若干次,能够完全省略!

2,其中,紫色的else部分能够完全省略。

3,该if语句会从前往后(从上往下)依次判断要求倘若某个要求满足了,就会执行其中对应的分支,而后就结束if分支结构语句!

4,倘若前面所有要求都不满足,就会执行最后的else分支(前提是有else分支)。

图示如下:

switch分支结构

形式:

switch ( 表达式 ){

case 要求值1:

分支1;

【break;】 //是能够省略部分,不是语法所必须;

case 要求值2:

分支2;

【break;】 //是能够省略部分,不是语法所必须;

........

default :

default 分支;

}

说明:

1,将表达式的结果数据,跟“要求值1”进行“相等判断”,倘若相等,就执行分支1,否则继续对后续值进行判断。。。。

2,倘若某个分支判断为相等,则执行该分支语句后,并且倘若其中break语句,则会直接进入下一个分支继续执行,而不会再去判断下一个分支的要求值了,并直到碰到break语句才会跳出。

关系图如下所示:

举例如下:

for循环结构

查看关联素材及更加多课程请搜索微X公众号“爱搞机个人版”,爱好学习的意见关注下,所有课程免费! 点下关注不迷路!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-10-5 15:30 , Processed in 0.072315 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.