php入门学习笔记(1/3):代码样式、变量与常量、数据类型,流程控制

前言

最近在学习文件上传漏洞,因此接触到大量的php代码,借此机会系统地学习了一下php,整理记录如下

一、代码样式

Ⅰ. 代码组成

序号代码描述
1<?php ... ?>PHP标记
2...php代码:函数、流程控制、类…
3;{}语句结束符
4注释 // 单行注释/* 多行注释 */(php不使用#来注释)
5空白符合理使用,增强代码可读性

Ⅱ. php标记

<?php 
    // php代码
?>

Ⅲ. php常用输出打印函数

序号指令描述
1echo输出一个或多个字符串,可以用逗号隔开
2print()打印输出一个字符串
3print_r()打印关于一个变量的易于理解的信息
4var_dump()打印变量的类型及其值,数组和对象将以递归形式展现值

二、变量与常量

Ⅰ. 变量

  • 开头不能是数字
  • 中间不能有空格
  • 声明、使用变量时,需要在其前面加上$
<?php
  $a = "我是一个字符串!!";
  echo $a;
?>

Ⅱ. 常量

  • 开头不能是数字
  • 使用define()来创建常量,或const
  • 不需要再加$
define(Cons_1,"我是一个常量");
echo Cons_1;

const Cons_2 = "我也是一个常量"
echo Cons_2;

三、数据类型

Ⅰ.php标量数据类型

序号类型描述
1布尔型 Booleantrue 和 flase
2整型 Integer整数(负数、0、无限大)
3浮点型 Float带小数的数字(负数、0、无限大)
4字符串 String字符

echo用于输出数据值

开发时测试使用var_dump来同时打印数据类型和值

1. 布尔型

  • 用于条件判断

    <?php
        $a = true;
        var_dump($a);
        echo '<hr/>';               // <hr/>是HTML中的水平线
        $b = false;
        var_dump($b);
    ?>
    

2. 整型

  • 可以用三种格式来指定:十进制、十六进制、八进制

    <?php
        $num = 0;
        var_dump($num);
        echo '<hr/>';
        $num = 123;
        var_dump($num);
        echo '<hr>';
        $num = -369;
        var_dump($num);
    ?>
    

3. 浮点型

  • 带小数的数字

    <?php
        $num = 10.01;
        var_dump($num);
        echo "<hr/>";
        $num = -123;
        var_dump($num);
    ?>
    

4. 字符串

  • 单引号或双引号内的字符

  • 一个汉字占有三个字符长度

  • 双引号可以解析变量,而单引号却不行

  • . 可以拼接连接两个字符串

    <?php
        $str = '我是一个字符串';
        var_dump($str);
        echo "<hr/>";
        $str = "$str = I am a string";  //双引号可以解析变量
        var_dump($str);
        echo "<hr/>";
        $str = '$str = I am a string';  //单引号不能解析变量
        var_dump($str);
    ?>
    

Ⅱ.复合数据类型

序号类型描述
1array数组
2object对象
3callable可调用的
4iterable可迭代的

Ⅲ.特殊数据类型

序号类型描述
1空值NULL表示"变量没有值"
2resource资源,比如由fopen()创建的文件系统指针

1. NULL

  • NULL表示"变量没有值"

    <?php
        $var_null;
        var_dump($var_null);  //变量var_null没有值,但会提示警告变量未赋值
        echo "<hr/>";
        $var_null = '';
        var_dump($var_null);  //变量var_null有值,但为空
        echo "<hr/>";
        $var_null = null;     
        var_dump($var_null);  //变量var_null被赋值为null,此时则不会警告,因为这个“没有值”是我们在上一条语句中赋给它的
    
        // NULL 
        // -----------------------------
        // string(0) "" 
        // -----------------------------
        // NULL 
    ?>
    

Ⅳ.数组

类型描述
数组array可以在一个数组变量中存储多个值

1.创建空数组

<?php
    $arr = array();
    var_dump($arr);
    echo "<hr/>";
    $arrs = [];
    var_dump($arrs);

    // array(0) { } 
    // ---------------------------------
    // array(0) { } 
?>

2.创建索引数组

<?php
    $arr = array(
        'AB','CD','EF'
    );
    var_dump($arr);

    // array(3) { [0]=> string(2) "AB" [1]=> string(2) "CD" [2]=> string(2) "EF" } 
?>
    
<?php
    $arr = [];
    $arr[0] = 'webshell.php';
    $arr[2] = 'png';

    // 数组的下标不一定要连续,比如这里$arr就没有下标1
    // echo $arr[1] => NULL
?>

3.创建关联数组(类似于“字典”)

<?php
    $arr = array(
        'First' => 'AB', 'Second' => 'CD', 'Third' => 'EF'
    );
    var_dump($arr);

    // array(3) { ["First"]=> string(2) "AB" ["Second"]=> string(2) "CD" ["Third"]=> string(2) "EF" } 
?>

4. 多维数组

<?php
    // 三维数组
    $arr1 = array(
        '最外层',
        array('中间层',
            array('最内层'
            ),
        ),
    );
    var_dump($arr1);

    echo "<hr/>";

    // 三维数组的另一形式
    $arr2 = [

            ['My_name' => [
                'first_name' => 'Bob',
                'last_name' => 'Trump'
            ]
        ],
            ['Birth_Day' => [
                'year' => '2000',
                'month' => '10',
                'day' => '27'
            ]
        ]
    ];
    var_dump($arr2);
    echo "<hr/>";
    echo $arr2[1]['Birth_Day']['day'];
    
    // array(2) { [0]=> string(9) "最外层" [1]=> array(2) { [0]=> string(9) "中间层" [1]=> array(1) { [0]=> string(9) "最内层" } } } 
    // -------------------------------------------------
    // array(2) { [0]=> array(1) { ["My_name"]=> array(2) { ["first_name"]=> string(3) "Bob" ["last_name"]=> string(5) "Trump" } } [1]=> array(1) { ["Birth_Day"]=> array(3) { ["year"]=> string(4) "2000" ["month"]=> string(2) "10" ["day"]=> string(2) "27" } } } 
    // -------------------------------------------------
    // 27
?>

Ⅴ.数组遍历

1. 利用foreach

<?php
    $arr = array(
    'firstName' => 'Alice',
    'lastName' => 'Green',
    'age' => '19'
    );

    foreach($arr as $value){
        echo "$value";
        echo '<hr/>';
    }
    // Alice
    // --------------------------------------
    // Green
    // --------------------------------------
    // 19
    // --------------------------------------
?>

2. 利用keyvalue

<?php
    $arr = array(
    'firstName' => 'Alice',
    'lastName' => 'Green',
    'age' => '19'
    );

    foreach($arr as $key => $value){
        echo "$key"."=>"."$value";
        echo '<hr/>';
    }
    // firstName=>Alice
    // --------------------------------------
    // lastName=>Green
    // --------------------------------------
    // age=>19
    // --------------------------------------
?>

3. 多维数组的遍历

<?php
    // 三维数组
    $arr = [
            
            ['My_name' => [
                'first_name' => 'Bob',
                'last_name' => 'Trump'
            ]
        ],
            ['Birth_Day' => [
                'year' => '2000',
                'month' => '10',
                'day' => '27'
            ]
        ]
    ];
    // 使用三重foreach来遍历
    foreach($arr as $k => $v){
        foreach($v as $vv){
            foreach($vv as $vvv){
                var_dump($vv);
            }
        }
    }
    // array(2) { ["first_name"]=> string(3) "Bob" ["last_name"]=> string(5) "Trump" } array(2) { ["first_name"]=> string(3) "Bob" ["last_name"]=> string(5) "Trump" } array(3) { ["year"]=> string(4) "2000" ["month"]=> string(2) "10" ["day"]=> string(2) "27" } array(3) { ["year"]=> string(4) "2000" ["month"]=> string(2) "10" ["day"]=> string(2) "27" } array(3) { ["year"]=> string(4) "2000" ["month"]=> string(2) "10" ["day"]=> string(2) "27" } 
?>

四、流程控制

Ⅰ.三元运算符

根据写在?左边的表达式的布尔值来判断,若是true返回:左边的内容,若是flase则返回:左边的内容

<?php
    $str = 'Tom';
    echo $str ? 'I am '.$str:"I don't know who I am";
    // I am Tom
?>

Ⅱ. if…elseif…else

<?php
    $var = 123;
    if($var < 100){
        echo "这个数是".$var.", 小于100";
    }
    elseif($var==100) {
        echo "这个数是".$var.", 等于100";
    }
    else{
        echo "这个数是".$var.", 大于100";
    }
    // 这个数是123, 大于100
?>

Ⅲ.switch…case…default

<?php
    $var = 3;
    switch($var){
        case 1:
            echo "我是1";
            break;
        case 2:
            echo "我是2";
            break;
        default:
            echo "我不是1或2";
            break;
    }
    // 我不是1或2
?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Neonline

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值