什么是PHP? 拍黄片。 HTML:HyperText Mark-up Language 超文本标记语言 PHP(PHP:Hypertext Preprocessor )超文本预处理器,是一种运行在服务器端的脚本语言,尤为适合web开发。 PHP能干什么? 收集表单数据 生成动态网页 收发cookies 跨平台运行 输出图像 文件处理 处理XML格式的数据 处理JSON格式的数据 会话跟踪 。。。。。 服务端脚本,用于写web网页(主攻)CGI 命令行脚本,CLI 编写桌面应用程序 PHP的特色 跨平台运行 开源免费 http://www.github.com 支持大多数的web服务器 支持很大范围的数据库 PHP的发展史 1995年由Lerdorf(PHP之父)发明 1998年PHP3发布 2000年PHP4发布,开始引入面向对象的思想(半成品) 2004年PHP5发布,彻底的支持面向对象思想 5.4或者5.6最稳定 2015年12月3号直接发布了PHP7,速度翻了一倍 第一个PHP文件 1.环境装好以后,进入到网站根目录(www,若是不是wampserver,有多是htdoc) 2.新建的文件后缀名必定是.php,文件名不能是中文的 3.写php代码:phpinfo(); 4.在浏览器中访问文件:http://localhost:80/demo.php HTML中嵌套PHP代码: 1.文件后缀必须是php 2.能够嵌套到任何地方:body中、html以外、属性中、css中 3.PHP代码必须被<?php ?>所包裹 PHP的标记 1.标准风格(经常使用) <?php php代码 ?> 5.<?= 是echo的简写(经常使用) <?='123';?> 至关于 <?php echo '123'; ?> 2.长风格(废物!!!!) <script language="php">php代码</script> 3.短风格(废物!!!!) <? php代码 ?> 须要在php.ini中开启short_open_tag(将它设置为on,默认为off) 4.asp风格(废物!!!!) <% php代码 %> 须要在php.ini中开启asp_tag(将它设置为on,默认为off) 注意: PSR规范中,只容许使用<?php ?>和<?= ?>这两种 若是是纯php文件,标准风格的结束标记能够不写 指令分隔符 PHP中语句分为两种 1.结构定义语句 流程控制、分支、循环、函数。。。用大括号标识,能够不加分号 2.功能执行语句 输出、变量定义、函数调用。。。后面必须加上分号 提示:php的结束标记中隐含了一个分号,最后一条语句能够不加分号 PHP中的注释 注释掉的代码,PHP都会忽略解析 1.//单行注释 //注释内容。。。 2.多行注释 /* 注释内容 */ 3.#单行注释 # 注释内容。。。 PHP中对空白符的处理 PHP会忽略空格、换行、tab制表符的解析,因此能够利用这个特色写出可读性比较高的代码 要求:php代码必需要按照严格的缩进;PSR规范规定,缩进只能4个空格(由于tab制表符的宽度,编辑器解释不同,不利于代码的移植) 变量 什么是变量? 变量是用于临时存储值的容器 值能够是数字、文本或者其余一些比较复杂数据(数组、对象) 变量的特性 PHP是弱类型的语言,没必要告知变量的类型是什么,它会根据存储的值来决定这个变量是什么类型的 *变量的命名规范: 1.必须以$开始,后面跟变量名 2.变量名由字母、数字或者下划线_组合而成 3.不能以数字开头 4.严格区分大小写 5.能够是中文,可是别让我看到这种代码,否则罚抄10000遍 PHP中的数据类型 4种标量类型 boolean 布尔型 只有两个值,要么是true,要么是false 一般用于if判断,其余类型转换为布尔型获得false的状况: 布尔型:false 字符串:'' '0' 整型:0 -0 浮点型:0.0 数组:array() 空数组 null:null(包括未定义的变量) 其余全部值都被认为是true integer 整型 1.整型值可使用十进制,十六进制,八进制或二进制表示,前面能够加上可选的符号(- 或者 +)。 八进制表达,数字前必须加上0(零) 十六进制表达,数字前必须加上 0x 二进制表达,数字前必须加上 0b 2.PHP中整型的字长用PHP_INT_SIZE表示,通常占4个字节 3.整型的取值范围:PHP_INT_MAX 正负二十多个亿!超出取值范围自动转换为浮点型 -2147483647~2147483647 float 浮点型 1.浮点数,就是有小数点的数,一般用来表示整数没法表达的数值,好比金钱值、距离值、速度值 2.能够用科学计数法来表示 3.在PHP中float也有最大数,1.8e308 4.浮点数的精度有问题 5.将浮点数取整的函数 round() 四舍五入 floor() 舍去取整 ceil() 进一取整 string 字符串类型 定义方式: 1. 单引号 2. 双引号 3. heredoc 定界符方式 4. nowdoc(5.3以上) 单双引号的区别: 一、双引号能够解析变量;单引号不能解析变量,会原样输出; 二、双引号能够解析转义字符;单引号只能转义\\和\'自己; 三、单双引号都不能本身嵌套本身,能够互相嵌套 转义字符: \r 回车 \n 换行 \t 制表符 \\ 斜线自己 heredoc和nowdoc heredoc定界符能够嵌套单双引号,能够解析变量和转义字符 nowdoc能够嵌套单双引号,不能解析变量和转义字符 建议:尽可能使用单引号,效率略高 2种复合类型 array 数组类型 object 对象类型 2种特殊类型 resource 资源类型 null 空 只有一个值,就是null自己 获得null的状况: 一、直接赋值为null 二、未被赋值的变量,默认值也是null 三、被unset()删除掉的变量也是null PHP中的伪类型(看手册,var_dump()),并非PHP的原始数据类型 mixed:表明这个参数能够是多种不一样的类型 number:表明这个参数能够是int或者float pow() callback:还有个别名叫callable,表明这个参数必须是一个函数(回调函数) call_user_func()、session_set_save_handler() void:表明这个函数不接收任何参数;若是做为返回值,表示这个返回值是无用的 time( void ) var_dump() unset() PHP中的类型转换 强制转换 (int)/(integer) 强制转换为整型 (bool)/(boolean) 强制转换为布尔型 (float) 强制转换为浮点型 (string) 强制转换为字符串 (array) 强制转换为数组 (object) 强制转换为对象 (unset) 强制转换为null 自动转换 布尔环境 数值环境 字符串环境 数据类型的判断: is_bool() 检测变量是不是布尔型 is_string() 检测变量是不是字符串类型 is_int() 检测变量是不是整型 is_float() 检测变量是不是浮点型 is_array() 检测变量是不是数组类型 is_object() 检测变量是不是对象类型 is_resource() 检测变量是不是资源类型 is_null() 检测变量是不是null空类型 is_scalar() 检测变量是不是标量类型(int、float、string、boolean) is_numeric() 检测变量是不是数字或数字字符串 gettype($a) 获取变量的类型 settype($a, 'bool') 设置变量的类型(相似于强制转换) 常量 常量 汉语字典中第1条解释:长久,经久不变,常量也就是恒量 一经定义,不能删除和改变。 常量的定义: define define('常量名', 常量值); const const 常量名 = '常量值'; 常量名: 和变量名同样,只能是数字、字母或下划线; 不能以数字开头 (定义的时候能够,但用不了) 严格区分大小写(define能够经过第3个参数指定是否区分大小写,true不区分) 常量值: define定义的常量,除了object以外,均可以;(数组是PHP7新加的) const定义的常量值,不能是资源和对象; define和const的区别: const可在类中使用,define不能 const不能在条件语句中定义常量 const采用一个普通的常量名称,define能够采用表达式做为名称 const只能接受静态的标量,而define能够采用任何表达式 const定义的常量时大小写敏感的,而define可经过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感。 提示:echo一个未定义的常量时,会报一个notice并将常量名自动转换为字符串输出; defined(常量名) 用于检测常量是否认义 预约义常量:get_defined_constants()获取当前已经定义好的常量! PHP_INT_MAX PHP_INT_SIZE PHP_VERSION ... 魔术常量: 值会随着环境的变化而改变 __LINE__ 当前行号 __FILE__ 当前文件 __DIR__ 当前文件的目录 __CLASS__ __METHOD__ __NAMESPACE__ 。。。 运算符 运算符是能够经过给出的一个或多个值来产生另外一个值的东西; 有3种类型的运算符 一元运算符 只可以接收1个值参与运算的叫一元运算符 1 -1 负值运算符 ++ -- ! 二元运算符 2 + 2 算术运算符 + - * / 三元运算符 3 能够接收3个值的就是三元运算符 算数运算符 + - * / % 取余(取模)运算 39 % 3 == 0 求两个数相除的余数;39除以3余数为0 递增递减运算 ++ $i++; //后递增: 先返回$i,再将$i的值加1,下次用的时候值就是加1后的 ++$i; //前递增:先将$i的值加1,而后返回加过1后的$i -- $i--; //同上 --$i; 提示:对布尔值无效 字符串运算符 . 将其左右参数进行拼接运算 .= 将右边参数,附加到左边参数以后 赋值运算符 = 将右边的表达式的值,赋值给左边的变量 += $a += 3; //将$a加上3以后再赋值给$a,能够拆为$a = $a + 3; -= *= /= %= 比较运算符 > 大于 < 小于 >= 大于等于 <= 小于等于 == 等于 === 全等于 != | <> 不等于 !== 不全等于 逻辑运算符: 逻辑与:&& and 想娶大家丹姐,你要有房,而且还要有车! 洗脸:左脸和右脸 只有两边都为true,才返回true,不然返回false 逻辑或:|| or 想娶凤姐,要么你财大,要么你器粗! 丢钱包:你找到了,或者我找到了 只要有任何一边为true,结果就为true; 注意:前面为true,后边就再也不执行,俗称短路 逻辑非 ! 小星星原本是纯爷们(true),去了趟泰国,被砍了一刀(false),就不纯了 就是取反的意思 $bool = true; !$bool == false 逻辑异或 xor 男(true)男(true)不能结婚; 女(false)女(false)也不能结婚 两边不同才返回true,不然返回false 位运算符(了解) 按位与 & 按位或 | 按位异或 ^ 左移 << 右移 >> 按位非 ~ 其余运算符 ?: 三元运算符 表达式1 ? 表达式2 : 表达式3; 1为真就执行2,为假就执行3; @ 错误控制符,能够屏蔽错误 `` 执行运算符,能够执行一些操做系统的命令 //别急,讲到相应知识点的时候会补充讲解 => 数组下标指定符号 -> 对象成员访问符 instanceof 类型运算符