




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PHP笔记 作者:邓家海 百度贴吧:软件频道 扣扣:763630473变量/常量PHP基本类型和语法1. Php基本语法1.1. Php的基本语法1. Php和html混编就是php可以和html混合使用2. 一个语句要以分号结束如果没有分号就会报错;正确的写法如:3. 变量的定义和使用定义变量要使用$符号,如:$a=1;这是给变量$a赋予一个值4. 变量的类型不是固定不变的Php的变量类型不是固定不变的,具体由变量的值决定,还有上下文来决定的,因为php是弱数据类型的编程语言,类似于javaScript的变量var,如:$a=1;$a=1.11;这样,$a就变成了小数类型,也就是浮点型,下面我们来验证一下?phpecho ;$a=1;var_dump($a);$a=1.11;var_dump($a);?输出结果为:5. Php是弱数据类型的编程语言6. Php区分大小写的$a=11;$A=111;echo a=.$a;echo A=.$A;如果不区分大小写,我们的两个输出都应该是等于111,运行结果如下:很明显结果是不一样的,所以可以看出大小写是区分的,不能混淆。7. 一个有效的变量名由字母或者下划线开头,后面可以接上字母、数字或者下划线,变量名不能是关键字或者保留字1.2. Php的基本数据类型整形(integer/int)小数型/浮点型(float)(单精度/双精度)布尔类型(boolean)有真、假(true/false)字符串类型(string)1.3. (复合数据类型)数组类型(array)对象类型(object)1.4. Php的特殊数据类型Null资源类型(resource)1.5. Php案例整型可以是负数也可以是正数$a=11;$A=-111;布尔类型$a=true 或者$b=false浮点类型单精度如$a=1.12 双精度如$b=3.1415926字符串类型$a=“hello”什么是定义变量?什么是变量赋值?两者的关系或者区别?定义变量就是变量赋值就是定义的变量的类型是由赋值决定的,如果重新赋值的类型和原来的类型不一致,那么,变量的类型就是最新赋值的数据类型。这样,$a的类型就由整型变成了字符串类型了。有一个面试题目:下面的程序输出什么结果:运行结果会报notice错误。Notice其实相当关于警告,他不影响程序的下文运行:可以看到后面的hello是执行并且是输出的,由此我们可以看出,这个错误不是一个致命的错误。var_dump($a);输出变量的信息可以看到输出null,说明它是没有信息的,虽然它是不影响程序的运行,但是从代码的规范(代码的健壮性,代码的可扩展性,代码的安全性等方面来考虑,代码的效率(并发,速度)是不建议这样写的在php中,整型可以用十进制,也可以用八进制、十六进制比如:$a=0123;/八进制$a=0X1A;/十六进制接下来再考虑一个问题:假如我做一个财务软件,我要计算工资等,数据类型要考虑什么?很明显的,我们要考虑数据类型的选择,一般都选择浮点型,还有各种类型支持的最大数,防止溢出,这些细节是非常重要的,那么,怎么看各种类型的最大数呢?echo PHP_INT_SIZE.;/占用字节echo PHP_INT_MAX.;/支持最大数可以看到运行结果为:还有一个小细节的问题:假如我输出大于整型最大值,会出现什么情况呢?会报错吗?不会!只是输出的数再也不是整型了而已,他会变成浮点型了,下面就是测试的结果:$a=2147483647;$b=2147483648;var_dump($a);var_dump($b);实际开发中要非常小心这些细节的问题,一不小心就会造成很大的损失。(var_dump()是一个输出变量信息的函数)负数的整型和整数的一样大有一个面试题目:在机器里面整型2是以什么形式存在的?首先我们要明确一个整型就是四个字节;一个字节就是8个机器码,那么整个整型就应该是00000000 00000000 00000000 000000010第一位是符号位,0代表整数,1代表负数。其余的二进一。那么-2呢?一样的,只需要改变符号位即可:10000000 00000000 00000000 000000010正数的原码、反码、补码都是一样的负数的反码:源码符号位不变,其他的取反负数的补码=它的反码+1;0的反码补码都是0;注意的是php没有无符号数,都是有符号的,在机器上都是以补码来进行运算的。下面就来看看布尔类型(boolean)$a=false;$b=true;布尔类型返回的结果是false或者true,它是不区分大小写的。默认的布尔值是false,下面的情况布尔值也为false整型的值为0;浮点值为0.0空字符串或者“0”空数组空对象(php4.0适用)NULL类型(未赋值的变量)下面就来看看浮点型的变量浮点型是否有溢出的情况呢?我们尝试输出一个小数位比较多的浮点数来看看:$a=0.12345678910111213141516;echo $a;我们来看看它的运行结果是什么?我们可以看到它只是输出了14位的小数,对于14位以后的小数就直接省略了,由此我们可以看到什么现象呢?由此得出,浮点型的数据也是会产生溢出的,最大只能支持14位的小数。它是从第一个非零的小数算起来的,不是非零的小数是什么情况呢,让我们来看一下不是非零的情况是什么样的:$a=0.000000000000000000012345678910111213141516;echo $a;运行的结果是:可以看到运行结果已经用了科学计数法来表示。下面就来看看字符串的字符串的细节问题:那么现在有一个面试题是这样的:$a=“hello”;和$b=”你好” 各占用多少个字节?下面来看看:由此可以看出来一个字母是占用一个字节,一个汉字是占用三个字节的,空格也是占用一个字节。字符串的长度和机器的内存有关,只要内存足够大,字符串的字节长度就没有限制。理论上对字符串的大小没有限制,只有没有超出内存的大小。字符串可以使用单引号定义,也可以使用双引号来定义,那么它们有什么区别呢?$i=90;$user1=hello;$user2=hello;echo 双引号为.$user1.;echo 单引号为.$user2.;var_dump($user1);var_dump($user2);$user1=hello$i;$user2=hello$i;echo 双引号为.$user1.;echo 单引号为.$user2.;var_dump($user1);var_dump($user2);运行的结果为:我们可以看到如果是双引号的话,可以引用变量的值,但如果是单引号的就是单引号里面是什么内容就是输出什么内容。双引号里面的内容可以进行解析,但是单引号的内容不可以进行解析。php的类型的自动转换Php类型是可以自动转换的,比如:$c=900;echo $c;var_dump($c);$c=90.0;echo $c.;var_dump($c);运行结果为:变量是我们不能决定的,只能由数据和上下文来决定,实际开发的时候,我们可以用var_dump();来显示它的类型。1.6. PHP的表达式问:什么是表达式?在php中,几乎所有的句子都是表达式,如:$a=67;$a=56+90;可以简单的概括为:任何有值的式子;算数运算符+ 加号- 减号* 乘号/ 出号% 取模(求余)注意,乘除运算千万不能写X和,否则一定会出错。这是初学者非常容易犯的错误。%可以求出两个数的余数。例如17%2=1,1就是17/2的余数。问题:现在有一个需求,要判断一个整数是否可以被另一个数整除。$a=50;$b=13;if($a%$b=0)echo $a.可以被.$b.整除;elseecho $a.不可以被.$b.整除;运行结果:算数运算符还有+(自增)-(自减)这两个算法在循环运算和程序的计算中都很常用$a+等价于$a=$a+1;$a-等价于$a=$a-1;$a=90;$a+;echo $a;$b=90;$b-;echo $b;运行结果为:前+和前-的情况:$a=90;+$a;echo $a;$b=90;-$b;echo $b;运行的结果是一样的:但是,如果我是这样写呢?$a=30;$b=$a+;echo $a.;echo $b.;$a=? $b=?这里可能很多人都认为$a=$b=31;其实正确的结果是:因为程序是从左运行到右边的,先是$b=$a,然后$a再执行+运算。如果我的是前+呢?$a=30;$b=+$a;echo $a.;echo $b.;运行结果:这个时候我们就可以看到:另个结果是一样的。这是因为先执行了+然后再赋值。-也是一样的原理。$a=30;$b=$a+;$b=+$a;echo $a.;echo $b.;这个是很经典的问题:或许很多人可以知道$a=32,但是会误认为$b=31,其实$b=32的:接着就是-= 左加+= 左减*= 左乘/= 左除%= 左取模a-=a其实就是a=a-a;其他的也是一样的原理。$a=56;$b=90;$a-=34;$b%=$a;echo $a.;echo $b.;这个的结果是什么?稍微想一想就明白了,其实这个并不难,$a-=34等价于$a=$a-34;$b%=$a等价于$b=$b%$a;接着就是比较运算符了这个就没有什么好说的,要说的就是=和=的区别!=和!=的区别。=就是要数值和类型都相等。=只要值相等即可,$a=2;$b=2.0;if($a=$b)echo 01;elseecho 02;if($a=$b)echo 01;elseecho 02;运行结果!=和!=也是一样的,!=只要值不相等就为真,!=只要值或者类型之一不想等就为真$a=2;$b=2.0;if($a!=$b)echo 01;elseecho 02;if($a!=$b)echo 01;elseecho 02;运行结果:现在有一个需求:要比较两个数的大小,并且判断其大小进行输出:$a=30;$b=47;if($a$b)echo $a.$b;elseif ($a$b)echo $a.$b;else echo $a.=.$b;运行结果为:逻辑运算符and (逻辑与)or (逻辑或)xor (逻辑异或)! (逻辑非)& (逻辑与)| (逻辑或)这部分就不多说了,其实有一点编程基础的都会接下来就是三元运算符三元运算符的基本语法:表达式1?表达式2:表达式3规则:如果表达式1为真,则取表达式2的值,如果表达式1为假,就取表达式3的值。$b?20:30;echo c=.$c;?运行结果为:需要注意的是:表达式也可以是一个函数。接着就是字符串运算.$a=hello wold;$b=1234;$c=$a.$b;echo $c; 从上面我们就可以看出.其实就是把两个变量进行拼接起来,这样,就可以合并成一个字符串了。类型运算符基本语法是:instanceof用于确定一个PHP变量是否属于某一类class的实例class Dogclass Cat$cat=new Cat;$dog=new Dog;var_dump($cat instanceof Cat);var_dump($cat instanceof Dog);运行结果是:通过这个案例就可以充分了解了类运算符的作用。这个一般实在面向对象的编程中使用的。算法优先符这部分就没什么好说的,具体可以查看php手册,设计程序的时候一定要考虑到算法优先的问题,否则程序的运行结果和预想的不一致。Php程序的三大流程控制顺序控制何为顺序控制?就是不加控制的流程,默认的情况下程序会按照顺序来执行的。就是由上到下逐句编译执行。分支控制分支控制又可以划分为:单分支单分支的语法为:If(表达式)语句;其中,表达式只能为真或者为假下面有这样一个需求:要求编写一个程序,输入一个人的年龄,判断其是否已经成年,如果已经成年则显示“您已成年!”(大于等于18岁成年)=18)Echo 您已成年!;?这样,就会输出您已成年!的信息,如果我把年龄改成1岁,会是什么结果呢?很明显,什么也不输出。双分支双分支的语法:If(表达式)语句;else语句;问题:在前面单分支的需求基础上增加如果不成年就输出”您未满18岁,还没成年”:=18)Echo 您已成年!;elseEcho 您未满18岁,还没成年;?这样,当年龄小于18岁的时候,还是有输出的。多分支If($age=18)语句;else if语句;else if语句;else if语句;else if语句;Else if可以有多个,也可以只有一个;多分支-switch基本语法结构switch(表达式)Case 常量1:语句;Break;Case 常量2:语句;Break;Case :语句;Break;Default:语句;Break;1. Default可以没有2. Case语句可以有多个3. 遇到break语句就会跳出循环4. 常量的类型是:(int,string,float,boole
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年欧美同学会会计准则强化题集
- 2025年人事代理招聘笔试模拟题及答案解析
- 2025年安全员考证模拟试卷及答案详解
- 2025年村级养老站社工笔试冲刺题
- 2025年幼师面试模拟题及答案解析
- 2025年物流无人机面试模拟题与答案解析
- 2025年安全员资格证考试模拟题及答案集
- 2025年红白理事会面试常见问题解析
- 2025年心理健康师中级考试复习
- 机电仪安全知识培训课件
- 2025秋季开学初班主任会议德育副校长讲话:从‘知责’到‘善育’这4步你做到几步
- 新生儿病房护理安全管理
- 瑞雪迎春春节家宴主题说明书
- 军用车修理知识培训课件
- 医务人员职业道德准则(2025年版)全文培训课件
- 乘客遗失物品处理课件
- 2025年云南省中考物理真题(含答案)
- 医院保卫科岗位竞聘工作汇报
- 医院科室停电应急预案
- 2025年教育学家教学理论考试试题及答案解析
- 项目初步验收汇报
评论
0/150
提交评论