3天基础巩固笔记

变量类型
整型,浮点型,字符串,布尔,数组,对象,NULL,资源
NULL是指没有值,也没有类型
$a=null;

变量检测
isset可以检测变量是否存在,
注意:对于NULL,isset也返回false

$a=null;
//会输出不存在
if(isset($a)){
    echo '变量a存在';
}else{
    echo '变量a不存在';
}

变量类型判断
gettype获取变量类型
is_int(),is_array(),is_float(),is_integer(),is_string(),is_object(),is_bool()

$a=false;
echo gettype($a);
echo '<br>';
if(is_bool($a)){
    echo 'a是布尔值';

打印调试变量
echo 字符串
print_r 数组
var_dump 所有类型,打印变量的类型及其值

$a = '1';
$b = array(1,2,'3');
echo $a;
print_r ($b);
echo '<br>';
var_dump($b);

变量类型转换
变量类型可以随时转换,非常灵活
最常见的是字符串与数字的转换
或是数字/字符串 -> 布尔值的转换

//字符串到数字,从左到右截取,直到碰到不合法的数字,截取出来的部分转成数字
$a = 'world12.5hello';
$a =$a + 3;
var_dump ($a);

//数字到字符串
$a = 123;
$a = $a . 'hello';
echo $a;

//到布尔型的判断,以下值都被当成假,其他都被当成真
//'','0',0,0.0,false,NULL,array()
if (''==false){
    echo '空字符串为假';
}

赋值
传值赋值,引用赋值

//传值赋值,一个改变了不影响另一个
$li = 29;
$wang = 23;
$wang = $li;
var_dump ($li,$wang);//int(29) int(29) 
$li = 'w';
var_dump ($li,$wang);//string(1) "w" int(29) 
echo '<br>';

//引用赋值,一个改变了会影响另一个
$li = 29;
$wang = 23;
$wang = &$li;
var_dump ($li,$wang);//int(29) int(29) 
$wang = 'w';
var_dump ($li,$wang);// string(1) "w" string(1) "w" 

销毁变量
unset
unset引用赋值的某个变量时,不会影响对方

$a = 99;
unset($a);
if(isset($a)){
    echo 'a存在';
}else{
    echo 'a不存在';
}
echo '<br>';


$li = 29;
$wang = &$li;
var_dump ($li,$wang);//int(29) int(29) 
$wang = 20;
var_dump ($li,$wang);//20,20
unset ($li);
var_dump ($li,$wang);//NULL,20

动态变量名
用变量的值再做变量的名,如$$a

$liubei = '河北';
$laoda = 'liubei';
$paihang = 'laoda';
echo $laoda,$$laoda,$$$paihang;//liubei河北河北

算术运算符

//除数不能为0
$a = 10;
$b = 0;
echo $a / $b;
echo '<br>';
//太大转为浮点数
$a = 3200000000;
$b = 3200000000;
$c = $a + $b;
var_dump($c);
echo '<br>';
//取模算法时,结果的正负仅取决于被除数
$a = -10;
$b = -3;
echo $a % $b;

比较运算符

//凡运算必有运算结果,比较运算符的结果是布尔型值
$a = 5;
$b = 3;
$c = $a > $b;
var_dump($c);
$c = ($a == $b);
var_dump($c);

//全等于,要求类型相同且值相等
$a = 5;
$b = '5';
var_dump($a == $b);
var_dump($a === $b);

$res = 0;
if($res === false){
    echo '没找到';
}else{
    echo '找到了';
}

三元运算符

$a = 15;
$b = 10;
$c = null;
if($a >= $b){
    $c = $a;
}else{
    $c = $b;
}
var_dump($c);

$c = ($a > $b? $a : $b);
var_dump($c);
//用三元运算符找出三个数中最大的
$a = 1;
$b = 2;
$c = 3;
$d = (a > b)?((a > c)? a:c):((b > c)?b:c);
echo $d;

逻辑运算符
简化这种大量的嵌套

//某女要求有房有车才嫁
$house = true;
$car = false;
if ($house === true){
    if($car === true){
        echo '嫁';
    }else{
        echo '不嫁';
    }
}else{
    echo '不嫁';
}

//有房有车才行
$house = true;
$car = false;
if(($house == true) && ($car == true)){
    echo '嫁';
}else{
    echo '不嫁';
}
echo '<br>';
//有房或有车都行
$house = false;
$car = false;
if($house || $car){
    echo '嫁';
}else{
    echo '不嫁';
}

递增递减运算符

$b = 5;
$a = $b++;//1返回b本身的值,2把b的值加1
var_dump($a,$b);//5,6

echo '<br>';

$b = 5;
$a = --$b;//1把b的值减1,2返回新值
var_dump($a,$b);//4,4

字符串运算符

$a = 'hello';
$b = 'world';
echo $a,$b;//这样运算速度比拼接快
echo '~~~';
echo $a.$b;
echo '~~~';
$c = $a.$b;
var_dump ($c);
$d = 112;
$c = $c . $d;
var_dump($c);

switch case控制结构
if-else括号太多,麻烦,可以用这个简化
switch case适合用在验证多个可能的值时使用,不适合用在判断范围

$today = 0;
switch ($today){
    case 1:
        echo '今天是星期1';
        break;
    case 2:
        echo '今天是星期2';
        break;
    case 3:
        echo '今天是星期3';
        break;
    case 4:
        echo '今天是星期4';
        break;
    case 5:
        echo '今天是星期5';
        break;
    case 6:
        echo '今天是星期6';
        break;
    case 7:
        echo '今天是星期7';
        break;
    default:
        echo '你来自火星';
}

while循环
while

$i = 0;
while($i<=10){
    echo $i++,'<br/>';
}

do while
先执行一次再说

$i = 100;
do{
    echo '我照样执行一次';
}while($i<10);

for循坏
循环的一般要素:初始化(1),判断(2),执行体(3),修改变量(4)
for(1;2;4){
3
}

for($i = 10; $i>=3 ; $i -=3){
    echo '喝酒<br/>';
}

可以同时执行多个变量

for($i=1, $j=5;$i<=5 && $j>=1; $i++,$j--){
    echo $i,'~',$j,'<br/>';
}

break和continue

//跳过4号
for ($i=0; $i < 10; $i++){
    if($i == 4){
        continue;
    }
    echo $i,'<br/>';
}
//找到7之后,后面的就不看了
for ($i=0; $i < 10; $i++){
    if($i == 7){
        echo $i,'找到';
        break;
    }else{
    echo $i,'<br/>';   
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值