PHP笔记一
PHP语言就是其中的一种,因为它可以运行在Web服务器端。
1、运行在服务器端:学会了PHP,就可以指挥服务器给你干活,WEB网站的大部分数据都是存储在服务器端的,PHP就是用来处理这些存储在服务器的数据的。
2、跨平台:有多种平台的服务器,都可以使用php来指挥。
3、在编写PHP的过程其实就是与老外(服务器成老外啦)交流的过程,交流的语言就是PHP。
被认为是false的值
布尔值 FALSE 本身
整型值 0(零)
浮点型值 0.0(零)
空字符串,以及字符串 "0"
不包括任何元素的数组
不包括任何成员变量的对象(仅 PHP 4.0 适用)
特殊类型 NULL(包括尚未赋值的变量)
从空标记生成的 SimpleXML 对象
引用赋值
利用 “&”表明要的是地址,即是修改了它指向的地址
如:&$two = $one; 即是two有个& 标明 它要的是地址 所以的 one 给了它one的地址,因此它们指向一样的地址
即是 都指向 有& 的变量地址 , 值都等于它
注意 :利用unset()能够清空变量的值;如上面 unset($a); 此时a=null , b不受影响
这种方法时违反了封装性.按道理,函数运行之后,对外部的环境应该是"没有副作用的".
因此:对函数进行引用传参,是不推荐的!在PHP5.0以上就不推荐了,
PHP5.4的时候,干脆删除了引用传参这个功能. 报fatal error
解决 : 如果真的想获得函数里面的值,应该函数中直接return该变量出来,再接收
动态变量
$a = 1,
$b =”a”,那么$$b就等于1 ; 因为 $($b)=$a=1;动态变量
$a = 1,
$b =”a”,那么$$b就等于1 ; 因为 $($b)=$a=1;
运算符
如果相加的数过大溢出,会自动换型
全等于 := = = ,要求值相等并且类型也相等
应用:
因为一般0默认为false,用==不行
switch分支 : 如果不添加break;如果case成立,后面的还是继续执行;case不能使用范围
组合问题之买鸡
有100元;公鸡5元/只;母鸡3元/只;小鸡1元/只。要买100只鸡,总共多少只公母小?
利用for循环组合出方案
函数的概念
函数就是一段封装好的代码,等待调用;不调用不执行
function 名(){}
直接输出或者通过返回得到结果
return时结束函数,其后的语句不再执行
函数内的值如果不返回的话,是不能影响外面的同名变量
函数里面的q和外面的q不是同一个
局部问题/函数作用域/
PHP中函数变量和全局是完全隔绝的,也就是无法相互访问
函数内如果想要函数外的全局变量的值可以用global声明为全局变量,但是一般不建议使用global,因为破坏了函数的封装性
$a = 1; $b = 2; $c = 3; function Sum() { $b = $a+$c+10;//在还没声明global之前是不能获取$a,$c的值,即仍然是局部变量范围 echo $b . "\n"; //输出10 global $a, $b; //声明为全局变量,值和外面的全局a一样 echo $b ; //$b变成全局变量,所以和外面的全局变量一样,输出2 } Sum(); echo $b; //输出2
注意 : for,while,foreach等循环并不是局部变量,而是能够影响循环外面的同名值(同一个)
时间类函数
时间戳函数 time(): 表示1970 01 01 0点到现在这一瞬间经过的秒数 ,直接使用
时间的格式化 date():date(‘Y-m-d 星期N h:i:s’[,time()]); //更多格式化参考手册;字母大小写不同含,
经验 :选字体的时候,前面的@代表字体横向
获得当前的时间的时间戳 :strtotime(‘now’) ;// 还能输出明天等
获得某个时间的时间戳 :mktime()
checkdate(2,29,2000)
在开发手册中中括号表示可选
单双引号的区别
(1)单引号内的内容PHP解析器只转义以下字符 ; 双引号转义比较多
(2)双引号能够解析变量;单引号不能,因此单引号速度比较快(转义少不用解析)