//!$a>10 会先把!$a转换成boolean。true为1 false为0 再进行比较;
//短路运算(偷懒运算) eg: f && t var_dump(t) 显示未定义。 因为 已判断第一个是f 直接短路 不运算下一个;
//比较的时候,如果类型不一样,系统会自动转换成统一类型;
//复合三目运算 内部用括号包裹;
//前置++或者--寄存器会先缓存,得出的结果比实际结果+1;这是php底层编译语言方式的问题;eg $a=1; ++$a + ++$a = 6;
//正数 原码反码一样, 按位取反:简单理解(正数的 反 等于 {-(正数+1)});反之;
//有时候在循环内部可能碰到某些特殊情况,需要让循环终止,使用continue和break;if for while 都算一层,continue 默认跳出一层;
//模板标签用来替换大括号,让代码结构更加明显,for(){};=》for: endfor;
//形参有值 需要在调用的时候才会赋值;
//函数有几个要素:关键字(function),函数名, 参数(形参和实参),函数体(代码块)和返回值(返回结果);
//参数分为两种:形参: 形式参数,是指函数在定义的时候,所用的变量;实参: 实际参数,是指函数在调用的时候,所使用的数据;
//实参可以比形参多,不能少;
//return可以代表函数的结束;中止不会继续执行下一行;
//return代表返回数据给函数调用处: 代表函数的结束(一定碰到return,函数必然结束)
//函数一定有返回值,但不一定有return 如果没有明确 则返回null;
//超越全局, 没有作用域的限制: 可以在函数的内部使用$GLOBALS来访问全局变量
//全局变量和局部变量不能互访;
//$GLOBALS不是引用全局变量,而是直接代表全局变量
// 静态变量只会在函数加载到内存的时候直接初始化
//$GLOBAL只能声明,不能直接赋值;
//static只能修饰局部变量;有static的那行代码只会执行一次;
//使用匿名函数: 通过变量找到函数地址,还必须告诉当前内容是函数,必须当做函数来解析: 系统只要碰到()就认为是函数;
//is_scalar: 标量类型判断(四种基本类型判断);
//类型转换:系统在判断的时候会自动的去确定数据类型,凡是不合理的地方都会进行自动的转换.碰到条件判断: 系统会自动转换成布尔结果;
//php会根据运算符号自动转化类型进行运算;eg:$.12a=>0.12 $123abc=》123 $abc123=>0;直到非数字结束;
//强制转换不会用settype (它会把1转成true)
//文件包含的意义: 实现代码的复用
//文件 包含 向上包含就是还要跟别人学 向下包含就是传授给别人使用
// ./相对路径在文件夹下也有,只是被隐藏起来了,建议用 绝对路径 才不会有问题;
//require和include区别:Include会给出警告,不影响脚本执行;Require会给出致命错误,终止脚本执行;
//Substr(要截取的字符串,截取的起始位置[,截取长度]);
//Strchr: (获取文件后缀名)字符串截取,不同于substr的是直接截取到最后(从左边开始)
//Trim: 默认的取出字符串两边的空格, 也可以去除两边的指定字符串
//Rand: 获取一个指定区间的随机整数
//Strpos: position位置,获取某个字符串在目标字符串中的位置(从左边开始)
//有返回值才是一种函数
//没有$是常量;数组引用的时候;
//php数组可以是任意类型;
//Foreach(数组变量 as [保存下标的变量 => ]保存值的变量)
//Each如果在指针移动到数组的最后(移出数组): 返回false;Each通常不会单独使用,搭配list的结构
//List(变量1,变量2....) = 数组;1, List结构取元素,只能取出下标从0开始的索引数组;2. 变量列表必须小于数组中顺序的索引元素的列表
//List通常搭配each: each取得的结果中一定会有一个从0开始的下标元素,1对应的元素
//指针操作函数:Key: 获取当前指针所在位置的元素下标, 如果不存在返回null;Current: 获取当前指针所在位置的元素值,如果不存在返回false;Next: 指针下移,并返回下一个元素的值;Prev: 指针上移,并返回上一个元素的值;Next或者prev只能按照自己的方向移动,但是如果指针已经移出数组:
next或者prev都没有办法移回来: 只能使用重置(reset和end);
//
//array_keys: 获取一个数组中所有的元素下标,返回一个索引数组;
//array_values: 获取一个数组中所有的元素值,返回一个索引数组;
//数据结构和算法:数据结构: 数据的存储方式, 如栈, 队列,哈希,二叉树,完全二叉树等等
算法: 代码,高效的检索数据的代码
//
利用数组模拟栈和队列
Array_shift(): 从数组的”头部”取出元素,数组会变短(数组左边)
Array_unshift(); 从数组”头部”添加元素, 返回数组的长度
Array_push(): 从数组的”尾部”添加元素(右边)
Array_pop(): 从数组的”尾部”弹出元素
//Explode: 爆炸, 将字符串按照某个指定的规则,进行分开, 变成一个数组
//Implode: 聚合, 将数组的元素按照某个指定的规则进行拼接,变成字符串
//for if while 中的条件为 数值0 是条件是不成立 不会执行,要注意;
//php没有数据结构 底层的c语言已经将数据结构封装;
//验证码不能有 0 因为会和o 混淆;
//Range(): 产生一个指定范围内的数组,按照ASCII码表;
2. PHP数组没有提供一个能够直接从数组中随机取出指定数量元素的函数: 但是提供了一个能够随机取出指定数量下标的函数:array_rand(): 取出指定下标
//
2. Array_rand数组获取到的数据会自动排序: 升序排序: 应该讲数组里面的顺序给打乱: shuffle(): 打乱数组中元素的顺序
//array_rand 获取的数据会自动升序排序;//