PHP自学笔记详细版(一)
一、变量(弱类型)
1.1 定义
$value = 整型/浮点型/字符串/BOOL/变量例如:$value1 = 100;$value2 = 100.01;$value3 = "Hello PHP";$value4 = "TRUE";$value5 = $value1;
1.2 命名(与C/C++ 等语规则相同)1.3 可变变量
$value = "Tom";$$value = "Sister";echo "$value";==>输出 Tomecho "$value's $Tom";==>输出 Tom‘s Sisterecho "$value's ${$value}";==>输出 Tom‘s Sister
注意:
$value = "Tom Cat";$$value = "Cry";echo "$$value";==>输出 Cryecho "${Tom Cat}";==>错误,因为变量名是不能有空格的1.4 引用
引用,直白的说就是可以将一个变量的地址映射到不同的变量对应的指针上。达到多个变量可以修改同一块内存。
例如:
$val = "CSDN:sjlwtf";$foo = &$val;echo "$val <br /> $foo <br />"// val 和 foo 都是 CSDN:sjlwtf$foo = "sjlwtf";echo "$val <br /> $foo <br />"// val 和 foo 都是 sjlwtf
注意:
引用只能引用变量
1.5 类型四种标量类型:整型,浮点型,字符串两种复合类型:数组,对象
两种特殊类型:资源,NULL整型,浮点型,字符串,对象,NULL 与C/C++ 类似,这里不做总结
数组:
两种定义方式
普通:下标(key) 为0,1,2,3,4,5,6,7,8.......
$arr = array("sjlwtf","hello","PHP");$arr1 = range(1,10);//数组元素1-10
关联型:我们可以自己定义下标,
$arr2 = array("song"=>1,2=>"jiu","lin"=>"WTF");看似复杂,其实很简单:arr2["song" ] 的值就是 1arr2[2] 的值就是 "jiu"arr2["lin"]的值就是“WTF”
资源:
因为PHP是弱类型语言,我们只有知道一个变量被什么类型的值赋值,才能判断出这个变量的类型。例如:
$val// 这是什么类型?我也不知道$val = 100;// 因为 100 是整型,所以$val是整型以此类推$val = fopen("sjlwtf.txt","wb");// val 就是一个文件资源类型,这里要和C/C++区分
1.6 类型转换
1.6.1 自动类型转换
BOOL和NULL可以自动转换成整型或者是浮点型字符串可以自动转换成整型或者是浮点型$var = “100h”;$var += 1;//var 为 101 依次类推
1.6.2 强制类型转换
整型:(integer)/(int)---> $var = (int)100.12布尔:(bool)(boolean)---> $var = (bool)-1;浮点:(float)(double)(real)字符串:(string)数组:(array)对象:(obejict)
1.6.3 类型判断函数
is_xxx($var);是XXX类型返回true,不是返回false;is_int();is_bool();
.....
1.7 常量
1.7.1常量的定义
<span style="white-space:pre"> </span>boolean define(string name,mixed value [,bool case]);
case :true ,不区分大小写;false,区分大小写可省略,默认是false
define("ANDO_CURRENT",1002);
1.7.1预定义常量
__FILE__文件__LINE__行号__FUNCTION__函数__CLASS__类__METHOD__方法名
1.8 运算符
这里只总结比较特殊的运算符
1.8.1 点号 . 运算符
$var = "sjlwtf";echo "helloWorld ".$var." Come"; //helloWorld sjlwtf Come
1.8.2 <> 就是 !=1.8.3 数组 + 运算符
$a = array("a" => "apple", "b" => "banana");$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");$c = $a + $b;====> apple,banana,cherry$c = $b + $a; ====>pear,starwberry,cherry注意:数组的加运算是不能覆盖被加的数组,只能追加
1.8.4 == 和 ===
非数组情况:== 只是比较两个值得大小,===要比较类型
$val = 0;$val == "0";//true$val === '0';//false
数组情况:== 在key值顺序相同时,只比较value , === 是完全比较
$var1 = array(1,2);$var2 = array("1"=>1,2=>"2");$var1 == $var2;//true$var1 === $var2;//false
1.8.5 逻辑运算符(完全与其他语言一样)1.8.6 其他运算符
执行运算符:`ls -al` tab键上面的单引号,直接执行命令错误控制符:@表达式这个表达式的错误会被忽略数组指定符:key=>value成员访问符:对象->成员类型运算符:对象instanceof类