php基础语法.docx

上传人:b****7 文档编号:15859806 上传时间:2023-07-08 格式:DOCX 页数:23 大小:849.57KB
下载 相关 举报
php基础语法.docx_第1页
第1页 / 共23页
php基础语法.docx_第2页
第2页 / 共23页
php基础语法.docx_第3页
第3页 / 共23页
php基础语法.docx_第4页
第4页 / 共23页
php基础语法.docx_第5页
第5页 / 共23页
php基础语法.docx_第6页
第6页 / 共23页
php基础语法.docx_第7页
第7页 / 共23页
php基础语法.docx_第8页
第8页 / 共23页
php基础语法.docx_第9页
第9页 / 共23页
php基础语法.docx_第10页
第10页 / 共23页
php基础语法.docx_第11页
第11页 / 共23页
php基础语法.docx_第12页
第12页 / 共23页
php基础语法.docx_第13页
第13页 / 共23页
php基础语法.docx_第14页
第14页 / 共23页
php基础语法.docx_第15页
第15页 / 共23页
php基础语法.docx_第16页
第16页 / 共23页
php基础语法.docx_第17页
第17页 / 共23页
php基础语法.docx_第18页
第18页 / 共23页
php基础语法.docx_第19页
第19页 / 共23页
php基础语法.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

php基础语法.docx

《php基础语法.docx》由会员分享,可在线阅读,更多相关《php基础语法.docx(23页珍藏版)》请在冰点文库上搜索。

php基础语法.docx

php基础语法

作业说明

进制转换,十进制101转成二进制,八进制。

两种都要会,一是手算,理解原理。

二是利用系统函数,

二进制:

bin

八进制:

oct

十进制:

dec

十六进制:

hex

其它进制转成十进制,参数是字符串。

$a=5,$b=10,不用第三个变量,交换两个数的值。

利用加减法(正解)

下面的方法也可以

利用循环及转义字符知识输出ASCII码中的可见字符。

提示:

32-126之间

一.类型转换

运算数在参加运算的时候,需要将类型转为相同,然后才进行计算。

在上面的例子中,第一个运算中,会先将$int转成浮点,然后和$f1相加,第二个运算中,会先将$str转成int类型,然后和$int相加。

在这个过程中,出现了类型转换。

在上面的例子中,转换是系统自己进行的。

弱类型和强类型。

在定义一个变量的时候,不需要指定变量的类型,它的类型由程序的上下文来决定的,比如$a=10,那就意味着$a是一个整型,$a=‘hello’,就意味着$a是一个字符串。

像这种确定变量类型的方式就是弱类型。

与之对应的就是强类型,比如C、java、C#等。

变量在参与运算的时候,类型发生了变化,但变量本身的类型并没有改变。

注意两点:

Ø在参与运算的多个操作数据之间,运算之前都需要将数据类型转成一致才可以。

Ø这并没有改变这些操作数本身的类型;改变的仅是这些操作数如何被求值以及表达式本身的类型。

通常有两种方式来完成类型转换:

Ø强制转换

Ø自动转换

强制转换,我们在需要转换的变量之前,使用类型关键字,用括号括起来。

Int或者interger

Float

Boolean

String

Array

Object

在PHP中,实现强制转换,在要转换的变量之前加上用括号括起来的目标类型即可。

Ø(int),(integer)-转换为整型(integer)

Ø(bool),(boolean)-转换为布尔型(boolean)

Ø(float),(double),(real)-转换为浮点型(float)

Ø(string)-转换为字符串(string)

Ø(array)-转换为数组(array)

Ø(object)-转换为对象(object)

Ø(unset)-转换为NULL

将其他类型转为资源类型是没有意义的。

强制转换在程序中,应用并不多,大部分情况下,使用自动类型转换就可以完成业务逻辑。

转换规则

转换成字符串

Ø一个整数或浮点数被转变为数字的字面样式的字符串

Ø一个booleanTRUE值被转换成字符串"1"。

BooleanFALSE被转换成""

Ø数组转换成字符串"Array"

Ø资源总会被转变成"Resourceid#1"这种结构的字符串

ØNULL总是被转变成空的字符串。

转换成整型

Ø从布尔值转换,FALSE将产生出0(零),TRUE将产生出1(壹)。

Ø从浮点数转换,当从浮点数转换成整数时,将向下取整。

Ø从字符串转换,如果字符串没有包含'.','e'或'E'并且数字值符合整数类型的限定,可被认定是一个integer,否则被认定为一个float。

字符串的开始部分给定了它的值,如果字符串以合法的数字开始,这个数字可直接使用。

否则,值就是0。

转换成布尔型

当转换为boolean时,以下值被认为是FALSE:

Ø布尔值FALSE自身

Ø整型值0(零)

Ø浮点型值0.0(零)

Ø空字符串,以及字符串"0"(注意"00"、"0.0"被认为是TRUE)

Ø空数组

Ø特殊类型NULL(包括尚未设定的变量)

所有其它值都被认为是TRUE(包括对象和资源)。

1和其它非零值(不论正负)一样,被认为是TRUE!

☞注意细节

ØHTML表单并不传递整数、浮点数或者布尔值,它们只传递字符串。

ØFALSE是一个布尔值而"false"是一个字符串。

数据类型相关函数

ØVar_dump:

打印变量的详细信息,包括类型和值

ØGettype:

获得类型

ØSettype:

设置类型

ØIs系列:

其中is_array会经常用到

ØIsset:

检查一个变量是否存在(设置)

ØEmpty:

检查一个变量是否为空

对于isset而言,只要声明过(有值),不管它的值是什么,那么就返回true

对于empty而言,相当于boolean(变量),然后再来取反。

简单例子

注意,在使用empty时候,要结合具体的业务逻辑类分析。

trim()函数移除字符串两侧的空白字符或其他预定义字符

二.运算符

能够实现某种运算功能的符号。

根据不同的功能,可以分为以下几大类:

Ø算术运算符

Ø赋值运算符

Ø字符串运算符

Ø比较运算符

Ø递增/递减运算符

Ø逻辑运算符

Ø位运算符

Ø错误控制运算符

Ø三目运算符

不同的运算符所对应的的运算数是不同的,单目、双目、三目。

一个运算符在进行运算的时候,需要确保运算数是一致的。

1.算术运算符

除法运算的结果,可能是浮点数,也可能是整数。

在取模运算中,如果有小数,则会去除小数部分。

在取模运算中,结果的正负取决于第一个数。

面试题:

执行程序段

phpecho8%(-3)?

>将输出

2.赋值运算符

就是=

$a=‘php’

[思考]:

$a=($b=4)+5;这行代码如何理解?

$a=9

赋值运算表达式的值也就是所赋的值。

也就是说,“$a=3”的值是3。

表达式也是有值的。

有时候我们还将=和其它的运算组合到一起,形成组合赋值。

$a=$a+5=>$a+=5;

3.字符串运算符

只有一个,就是点.,没有加号,

注意的是,点和赋值运算符一起形成组成赋值。

.=

4.比较运算符

比较运算符,比较两个运算数的关系,返回的结果是一个布尔值。

不等有两种写法,!

=和<>

☞注意细节

如果比较一个整数和字符串,则字符串会被转换为整数。

如果比较两个数字字符串,则作为整数比较。

===和==的区别。

比如0==false返回真,而0===false返回假。

5.递增递减运算符

++和--

根据其位置的不同,又分为前++,前--,后++,后--

前置和后置的区别?

不管是前置还是后置,变量的结果是一致的。

不同的运算的顺序,通过表达式来分析,前置,++$b,是先进行运算,然后再得到值,

而后置$b++,则是先得到值,然后进行运算。

☞注意细节

递增/递减运算符不影响布尔值。

递减NULL值也没有效果,但是递增NULL的结果是1

6.逻辑运算符

与:

两者都为true的情况才为trueand

或:

两者都为false的才为falseor

非:

非真即假,非假即真,直接取反。

异或:

xor,如果两者相异,结果为真,两者相同,结果为假。

之所以出现&&和and两种运算符,是由于它们的优先级不同。

短路运算:

在进行逻辑运算的时候,如果通过第一个参数已经能够确定整个表达式的值,那么就不会进行后面的运算。

对于与运算,如果第一个为假,则后面的不会进行计算。

对于或运算,如果第一个为真,则后面的不会进行计算

真实的代码:

7.位运算符

按位进行运算,

位,bit,是指二进制表示中的每一个数值。

010101

字节Byte,是由位构成的,通常是8bit00001010

1KB=1024Byte

1MB=1024KB

1GB=1024MB

1TB=1024GB

已知$a=9,$b=-4,分别求:

$a&$b,$a|$b,~$b,$a^$b,$a>>2,$b<<2的值。

位运算都是以二进制的形式来出现的。

同时要注意,二进制的表示形式有原码、反码、补码。

原码:

将十进制转成的二进制。

用最高位表示符号位,0表示正数,1表示负数。

反码:

对于正数,反码和原码相同

对于负数,符号位不变,其它位取反。

补码:

对于正数,补码和原码相同

对于负数,在反码的基础上+1。

计算机在底层进行运算的时候,是以补码的形式进行的。

Why?

$a&$b$a|$b的过程:

Ø右移:

低位溢出,符号位不变,高位用符号位补全(相当于除以2n然后取整)

Ø左移:

高位溢出,符号位不变,低位补0(相当于乘以2n)

$a>>2和$b<<2的运算过程:

不管是左移还是右移,它只会改变该数的大小,不改变符号,所以在移位操作的时候,符号位始终是不变的。

在实际编程的时候,经常会用一个位表示一种状态(或一个值)。

8.错误控制运算符

我们不期望看到错误,可以使用错误控制运算符进行屏蔽。

不是在每个会出现错误的地方使用这个运算,一般而言,对于我们无法控制的错误,比如去请求其它的资源的时候,可以使用。

☞注意细节

@运算符只对表达式有效。

不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等。

9.三目运算符

从名字我们就可以得知,这个运算符有三个运算数。

表达式1?

表达式2:

表达式3

等价于一个简单的if……else语句

If(表达式1){

表达式2

}else{

表达式3

}

使用三目运算符可以简化程序。

10.其它特殊运算符

主要有以下几个:

=>数组运算符

表示键和值的对应关系

Array(‘os’=>‘Linux’

[]数组运算符

用于获取数组元素

->对象运算符

对象操作属性,以及方法的运算符

instanceof对象运算符

判断某个对象是否是类的实例。

:

:

域作用符,用在面向对象当中的。

11.结合性和优先级

先看一个问题:

多个运算数在参与运算的时候,要注意它们的顺序和优先级。

在程序当中,并不是所有的运算符都是由左向右的,有一些是从右向左,比如赋值=。

一般来说,单目运算符比双目运算符的优先级高。

=的优先级比较低,比它还低的有andorxor,

And和&&的区别

☞注意细节

Ø运算符优先级指定了两个表达式绑定得有多“紧密”。

Ø同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。

Ø必要时可以用括号来强制改变优先级。

可以增强代码的可读性。

Ø&&||与andor的区别

Ø尽管=比其它大多数的运算符的优先级低,PHP仍旧允许类似如下的表达式:

if(!

$a=foo()),在此例中foo()的返回值被赋给了$a。

如果在编写代码的时候,对于运算比较复杂(运算符较多),可以使用()来改变优先级。

表达式

任何有值的东西,都是表达式。

赋值语句,函数的调用,

表达式本身也有值。

$b=($a=5)

$a=5是一个表达式,这个表达式本身有值,值就是$a的值。

三.流程控制

任何PHP脚本都是有一系列的语句组成,可以是一个赋值语句,一个函数的调用,也可以是一个空语句。

通过语言结构,来控制程序的执行的顺序,这就是流程控制。

通常有三大流程控制:

Ø顺序

Ø分支(选择)

Ø循环

一般而言,在编写程序之前,都会绘制一个图形的流程图。

尤其是对于那些业务逻辑比较复杂的程序。

绘制流程图常用的图例:

开始/结束

进程(流程)

判断

程序的走向

输入和输出

1.顺序结构

按照程序书写代码的顺序来执行。

2.分支结构

根据不同的条件,来执行不同的流程。

在php中,有两个系列,一个是if系列,一个是switch系列。

If系列

在if系列的分支结构中,又分为三种:

Ø单分支

Ø双分支

Ø多分支

单分支

是简单的一种的分支结构,if语句

双分支

向左走还是向右走的。

使用if……else来实现

多分支

要进行多次的条件判断,使用if……elseif……elseif……else

elseif还可以分开写elseif,分开写实际上是if……else的嵌套的写法。

两种写法的结果并没有什么不同的。

If语句的替代写法。

将{用:

来替代,将}用endif来替代。

注意elseif和else……if的替代语法的区别

作业

echocount("abc");输出什么?

(新浪?

自己编写程序,测试下面的结果

已知$a=9,$b=-4,分别求:

$a&$b,$a|$b,~$b,$a^$b,$a>>2,$b<<2的值。

面试题:

使用一句代码实现求三个数中的最大值,提示使用三目运算符。

输入一个分数,来判断它的等级,100A+,90-100A,80-90B70-80C60-70D,使用if的替代语法的形式来完成。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2