1.变量的定义:是将变量名引用到变量值上
unset:相当于将引用去除,然后根据php垃圾回收机制(变量值没有被任何一个变量引用),将变量回收。
变量的命名规范【这一点不需要再研究。就是面向对象中,对小驼峰命名规则的使用】【有了utf8之后,使用中文也可以做变量名】
变量在定义前直接被使用会报一个notice【isset使用】
变量名不使用关键字
重点:
按值传递【变量的赋值默认采用按值传递,但是可以改成按引用传值方式(在函数中传参可以设置)】
按引用传值【&另一个变量】【这个符号改成按引用传值,对变量的改动针对的是指向的引用值(而不是重新复制一份)(在foreach循环中,通过按引用传值的设置的情况,将变量的改动引起变动。和指定key同样的效果)】
unset和按值传递与按引用传值的情形
2.echo不是一个函数(是一个语言结构)
','在拼接字符串的效率上比'.'好
可变变量:$$hello;【两个$符的使用】
【例子:
$hello='world';
$$hello;//变量名可以是一个变量!!!
】
【还有可变函数?】
预定义变量【常见的那些预定义变量:常用的】【php.ini对get和post的配置会生效】
考虑到作用域【全局和局部作用域】
【区别于js的作用域链。作用域链实现全局和局部变量的机制】
3.常量
常量使用大写
【使用define来验证看是否对常量定义,如果没有就进行定义】
预定义常量
主要都是分隔符、换行符等不同系统之间的兼容【使用这些预定义常量】
魔术常量:【编程中辅助__LINE__】【获取当前的一些参数】
【重点】
4.数据类型
php的数据类型:【php不需要声明数据类型,由当前程序的上下文来确定】
4种标准类型:整型、浮点型、布尔、字符串
2种符合类型:数组、对象
2种特殊类型:资源和null
使用var_dump来获取当前的数据的数据类型
整型:最大值和占位数【PHP_INT_MAX;PHP_INT_SIZE】
二进制转化的情况【对余数的计算】
php有函数直接进行进制转化【对不同的机制名有一个认识】
php中的整型溢出【如果超过最大的整型,php会将整型转化为浮点型】
浮点型:【小数类型:需要对精度有一个认识】
【不要对浮点型数据进行恒等的判断:会导致问题!!!】
【浮点的问题就是不精确。会在判断浮点数的时候出现问题】
【在程序中不要比较两个浮点数是否相等来进行逻辑比较(比较精确度的方式,或者乘以一个值转化为整型)】
布尔:true/false
字符串:
字符串中变量的解析问题
【变量是否能够被解析,跟变量定义的那个符号有关:
echo "i like '$a'";//这种情形下,$a可以被正常解析
echo 'i like "$a"';//这种情况下,$a不可以被解析
echo "i like {$a}bc";//这种情形会将$a解析出的字符串与后面的部分进行拼接
】
字符和编码的问题【转义】
使用定界符做大段字符串的输出【其实不常用】
两种复合类型
数组:一种数组的集合
由键值对组成的集合【为了寻址方便】
如果不指定数组的下标,直接对数组进行赋值,那么该新添加的键是针对最大的键值加一。
arr[0=>'1',100=>'2'];arr[]=3;
print_r($arr);
字符串做数组获取指定位置上的字母。$str='php';echo $str[0];【中文问题】
对象:
也是一种数据结构【一堆情形的组合】
【对象是将数据进行隔离和模块的关键】
资源:resource
在使用php编程中,有时候需要操作一些不属于php本身的一些资源。
【php使用的扩展得到的数据结构就是资源】
【数据库、redis等】
NULL:
表示一个变量没有值。【赋值为null,未定义,unset变量】
伪类型?
需要在程序中描述数据的类型。【只是用来描述使用,其实不属于语言本身】
number数值型
mixed混合类型
callback回调【使用函数指针作为一个参数指针被其他情形调用】
void 空【函数返回值是无用的】
问题:
对位和字节等进行统一总结
对http连接和php连接数据库的连接池有一个认识