PHP基础(1)

来源:互联网 发布:南平广电网络招聘 编辑:程序博客网 时间:2024/06/05 22:54

变量类型

变量类型的转换

php中变量的类型是可以随时转换的,非常常见的是字符串和数字的转换或是数字、字符串——>布尔值的转换

其他值转成布尔值

以下值都被当初布尔的假,而其他值都被当成布尔的真。

其他值 描述 转换成布尔值的结果 ” 空字符串 false ‘0’ 字符串0 false 0 数字0 false 0.0 浮点型的0 false false 布尔值假 false NULL NULL false array() 空数组 false
if ('' == NULL) { //也可以使用flase    echo "空字符串果然假";}

字符串到数字的转换

字符串到数字的转换,从左到右截取,直到碰到不合法的数字,截取出来的部分转成数字,
开头碰到不合法的数字,转成数字0

$a = 'hello12.5world55';$a = $a + 3;var_dump($a); // int 3$a = 123;$a = $a . 'hello'; //字符串的拼接使用点echo "$a"; // 123hello

赋值

赋值分两种:
1. 传值赋值
2. 引用赋值

变量赋值之传值赋值

$li = 29;$wang = 23;$wang = $li;var_dump($li,$wang); // int 29 int 29$wang = 'hello';var_dump($li,$wang); // int 29 string 'hello' (length=5)

变量赋值之引用赋值

$li = 29;$wang = 23;$wang = &$li;var_dump($li,$wang); // int 29 int 29$wang = 'hello';var_dump($li,$wang); // string 'hello' (length=5) string 'hello' (length=5)

变量销毁

//销毁变量$a = 99;unset($a);if (isset($a)) {  echo "a存在";}else{ // 走else    echo "a不存在";}$li = 29;$wang = &$li;var_dump($li,$wang);// 29 29$wang = 20;var_dump($li,$wang);// 20 20unset($li);//销毁后,表示未定义变量,引用错误,var_dump($li,$wang);// null 20 

动态变量名

用变量的值再做变量的名;

//动态变量名$liubei = '河北人';$laoda = 'liubei';echo $laoda,'<br/>',${$laoda}; // liubei 河北人

运算符

三个注意:
1. 除数不可为0
2. 整数的最大值为四十多亿
3. 取模算法时,结果的正负仅取决被除数的正负

 // 第一个注意点: $a = 10; $b = 0; echo $a/$b; // Warning: Division by zero  除数不能为0 // 第二个注意点: $a = 3200000000; $b = 3200000000; $c = $a + $b; var_dump($c);     // float 6400000000  超出四十多亿,转换成浮点型 // 第三个注意: $a = -10; // 换成10,-10各试 $b = 3;  // 换成3,-3各试 var_dump($a%$b); //取模算法时,结果的正负仅取决被除数的正负

比较运算符

凡运算,必有结果,比较运算符的运算结果是布尔值

 $a = 5; $b = 3; $c = ($a > $b); var_dump($c); // boolean true $c = ($a==$b); var_dump($c); // boolean false //=== 全等于,要求类型相等且值相等 $a = 5; $b = '5'; var_dump($a == $b);//boolean true var_dump($a === $b);//boolean flase $res = 0;//integer,//false Boolean型    if ($res === false) {        echo "没找到";    }else{        echo "找到";    }

三元运算符 ?:

// 给定两个数,帮我找到大的$a = 13;$b = 28;$c = null;$c = ($a >= $b)?$a : $b;var_dump($c);// 运用三元运算符,比较三个数的大小$a = 3;$b = 23;$c = 18;$d = null;$d = ($c >= ($d = ($a >= $b)?$a : $b))?$c : $d;var_dump($d);

逻辑运算符-与或非

某女要求有房且有车,才嫁

$house = true;$car = false;if ($house == true) {    if ($car == true) {        echo "嫁";    }else{        echo "不嫁";    }}else{    echo "遗憾";}// 逻辑运算符方法$house = true;$car = true;$res = ($house == true && $car == true);var_dump($res);//使用if语句改写$house = true;$car = false;if( ($house == true && $car == true) ){    echo "嫁人";}else{    echo "不嫁";}

b女有房或者有车都嫁, ||的意思是起码有一个条件为真

$house = false;$car = false;if ($house || $car) {    echo "嫁";}else{    echo "遗憾saybeybey"; // 遗憾saybeybey}

递增递减运算符

$b = 5;$a = $b++;var_dump($a,$b); // int 5, int 6$b = 5;$a = $b--;var_dump($a,$b); // int 5, int 4$b = 5;$a = ++$b;var_dump($a,$b); // int 6, int 6$b = 5;$a = --$b;var_dump($a,$b); // int 4, int 4

字符串运算符

使用点(.)进行字符串的拼接

$a = 'hello';$b = 'world';$c = $a . $b;var_dump($c); //string 'helloworld' (length=10)$d = 112;$c = $c . $d;var_dump($c); // string 'helloworld112' (length=13)//下面那个运行速度快$a = 'hello';$b = 'world';echo $a,$b;echo "=====";echo $a.$b;

赋值运算符

a=3;//13a,2是返回运算结果。

控制语句

if else

最简单的不是就是控制语句

switch case

适合判断多个值的匹配,不适合用在范围判断

$today = 8 ;switch ($today) {    case '1':        echo "今天星期一";        break;    case '2':        echo "今天星期二";        break;    case '3':        echo "今天星期三";        break;    case '4':        echo "今天星期四";        break;    case '5':        echo "今天星期五";        break;    case '6':        echo "今天星期六";        break;    case '7':        echo "今天星期日";        break;    default:        echo "你来自火星";        break;}

while

张三有钱10万,需要经过我的山头。当其携带金钱大于50000时,
每次需要交其总钱数的0.05。当其携带金钱小于50000大于等于5000时,
每次通过需要交5000元。问张三能安全的从我的山头通过几次?

// method one$money = 100000;$num = 0;while ($money > 50000) {    $money *= 0.95;    ++$num;    echo '张三第',$num,'次经过路口时,还剩下',$money,'元<br />';}while( $money >= 5000 ) {    $money -= 5000;    ++$num;    echo '张三第',$num,'次经过路口时,还剩下',$money,'元<br />';}// method twofor ($i=100000,$count = 0; $i >= 5000;) {    $count += 1;    if ($i >50000) {        $i *= 0.95;    }else{        $i -= 5000;    }    echo '第',$count,'次经过路口时,还剩下',$i,'元<br />';}

do while

for

打印99乘法表

for ($i=1; $i <= 9 ; $i++) {     for ($j=1; $j <= $i ; $j++) {         $res = $i * $j;        echo "{$j} x {$i} = {$res} &nbsp;&nbsp;";    }    echo "<br />";}

《张丘建算经》成书于公元5世纪,作者是北魏人,
书中最后一道题,堪称亮点,通常也被称为“百钱买百鸡”的问题
民间则流传着县令考问神童的佳话,原文如下:
今有鸡翁一,值钱5;鸡母一,值钱3;鸡雏三,值钱1;
百钱买鸡百只,问鸡翁,母,雏各几何?

for ($g=1; $g <= 20 ; $g++) {    for ($m = 1; $m <= 33; $m++){        $i = 100-($g+$m);         if ($g+$m+$i==100&&($g*5+$m*3+$i/3)==100) {            echo '公母雏各',$g,'&nbsp;','&nbsp;',$m,'&nbsp;','&nbsp;',$i,'<br />';        }    }}

break continue

待续。。。