PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法,并根据它们的长项持续改进提升自己, PHP同时支持面向对象和面向过程的开发,使用上非常灵活。

https://www.w3school.com.cn/php/index.asp

概述:PHP的文件名一定不能有中文,因为php的核心是面向服务器的,又因为服务器的路径是不允许有中文的。

PHP脚本语言,它的外层长的和html机构很像,php的外壳可以在页面的任何位置执行

<?php ?>

看下面的代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <?php echo "hello" ?>
</body>
</html>

此时我们在页面输入127.0.0.1/1.php可以看到

php基础_html

上面的代码是php文件,并不是html文件,与其说是html代码中使用了php代码,不如说是php代码利用html结构进行了辅助

即便是脱离了html的机构,也可以实现php代码的执行

php基础_逻辑与_02php基础_php_03

 

 php代码不能进行嵌套的

<?php echo 1+2;
    <?php echo 2+3?>
?>

这是错误的写法,此时浏览器会报错

php基础_html_04

 

 注意:

  • php的壳子可以在任意的地方进行使用,因为php本身就是一个脚本语言
  • php不可以进行嵌套
  • php会将文件扁平化后进行返回

echo输出函数

echo是“回声”的意思,但是在PHP语言中echo具有的是输出的含义

为什么说echo是一个输出函数?或者说为什么是函数

看下面的输出内容

<?php echo(1+3)?>
等价于
<?php echo 1+3?>

php基础_php_05

所以我们发现第一种输出是echo()内部填写表达式,我们认为()内部在执行这些表达式,所以把echo当做是函数

如果echo是函数,内部可以进行简单的表达式计算

<?php echo(1+3)?>        //4    
<?php echo(1,2,3)?>        //报错
<?php echo(                //报错
    $a = 5;
    $b = 10;
    $a+$b;
)?>

常见的三元运算符在其内部是可以进行输出的

<?php echo(4<5?"ture":"false")?>    

php基础_php_06

如果多个echo一定要有分号隔开

<?php 
    echo 1;
    echo 2;
    echo 3;
?>

php基础_逻辑与_07

echo可以输出哪些内容?

输出的基本类型值(数字,字符串,布尔值)

<?php 
    echo "你好";
    echo 123;
    echo true;
?>

php基础_php_08

 

 

如果输出的字符串是一个html的标签结构,则会识别这个结构并且输出

<?php
    echo "<h1>你好php</h1>"
?>

php基础_javascript_09

 

 变量和连字符

JavaScript中定义一个变量使用的是var,php中定义一个变量是$;

<?php
     // 声明变量
     $a = "麻辣鸡丁";
     $b = "墨鱼仔";
     // 通过连字符连起来a和b
     echo $a.$b;
     echo "<br/>";
     echo "我喜欢吃$b,不喜欢吃{$a}"
?>

 

php基础_逻辑与_10

 

 注意:

  • php生命变量的关键字使用的是$,需要注意的是php中的变量没有声明提升;
  • php中的连字符是“.”或者“{}”,根据使用场景的不同可以使用对应的连字符,比如.更适合两个变量之间直接拼接,{}更适合字符串中间拼接某个变量
<?php
    echo $a;
     $a = "麻辣鸡丁";
?>

php基础_逻辑与_11

 此时页面不会报错,也不会输出

 

 运算符

JavaScript运算符和php是基本一样的,但是php有更多的运算符的拓展

<?php
    //
    $a = 10;
    $b = 20;
    echo $a+$b;        //30
    echo "<br/>";
    // 减法
    $a = 20;
    $b = 10;
    echo $a - $b;        //10
    echo "<br/>";
    // 乘法
    $a = 20;
    $b = 10;
    echo $a * $b;        //200
    echo "<br/>";
    // 除法
    $a = 20;
    $b = 10;
    echo $a / $b;        //2
    echo "<br/>";
    // 余数
    $a = 20;
    $b = 10;
    echo $a % $b;        //0
    echo "<br/>";
    // 逻辑与
    $a = 20;
    $b = 10;
    echo $a && $b;        //1
    echo "<br/>";
    // 逻辑或
    $a = 20;
    $b = 10;
    echo $a || $b;        //1
    echo "<br/>";
    // 逻辑非
    $a = 20;
    echo !!$a;            //1
echo "<br/>";
// 自增
$a = 20;
echo ++$a;            //21
?>

php基础_html_12

 

逻辑与和逻辑或,返回的不是对应的结构而是实实在在的布尔值,然后通过隐式转换变成了1(true)或者空(false)

 

注意:

php中逻辑与和逻辑或运算跟JavaScript中的逻辑与和逻辑或运算得出的结果不同

在JavaScript中逻辑与的运算结果返回值为数值大的那个数,而逻辑或则是返回数值比较小的那个

php基础_数组_13php基础_逻辑与_14

 

 

 

函数

php中的函数是通过关键字function进行定义,和JavaScript一样

<?php 
function add($a,$b){
    echo $a+$b;
}
add(1,2)
?>

php基础_逻辑与_15 

和JavaScript不同的是函数的形参必须是$开头

函数也可以有声明的提升

<?php 
add(1,2);
function add($a,$b){
    echo $a+$b;
}
?>

此时依然可以输出结果

php基础_逻辑与_16

 

 

 

注意:PHP函数的内部不能直接获取全局变量的值

<?php 
$a = 100;
$b = 200;
function add() {
   echo $a + $b;
}
add()
?>

php基础_html_17

 

 此时我们会输出0,为什么会输出0呢?

我们可以用var_dump来查看这个a和b的值

     <?php 
        $a=1;
        $b=2;
        function add(){
            var_dump($a,$b);
        };
        add()
    ?> 

php基础_数组_18

 

 

 此时我们会发现这两个值为null,所以 null+null=0,原因是因为php没有获取到这两个变量所以为null,

var_dump 函数作用是判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型.

所以我们需要使用global来确定从全局获取哪个值

  <?php 
         $a = 100;
         $b = 200;
         function add() {
             global $a;
             global $b;
             echo $a + $b;
         }
         add()
    ?> 

php基础_php_19

 

 

 

循环语句

php中也有流程控制语句(循环语句和条件语句);

循环语句:for、while、do-while在PHP中都是支持的

第一种for循环

<?php
    for($i = 1; $i <= 10; $i++) {
        if($i % 2 == 0) {
            echo $i."是偶数";
            echo "<br/>";
        } else {
            echo $i."是奇数";
            echo "<br/>";
        }
    }
?>

php基础_逻辑与_20

 

 

 第二种for循环

<?php for($i = 0; $i < 10; $i++){?>
    <p><?php echo $i?></p>
<?php }?>

php基础_javascript_21

while循环

<?php 
    $a = 10;
    while($a) {
        echo $a;
        echo "<br/>";
        $a--;
    }
?>

php基础_javascript_22

do-while

<?php 
    $a = 10;
    do{
        $a--;
        echo $a;
        echo "<br/>";
    }while($a)
?>

php基础_数组_23

 

 

 

 条件语句

PHP中的条件语句和JavaScript条件语句一样支持if和switch

if语句

<?php
    for($i = 1; $i <= 10; $i++) {
        if($i % 2 == 0) {
            echo $i."是偶数";
            echo "<br/>";
        } else {
            echo $i."是奇数";
            echo "<br/>";
        }
    }
?>

php基础_javascript_24 

switch语句

<?php
    for($i = 10; $i > 0; $i--) {
        switch($i) {
            case $i% 2 == 0:
            echo $i."是偶数";
            echo "<br/>";
            break;
            case  $i % 2 == 1:
            echo $i."是奇数";
            echo "<br/>";
            break;
        }
    }
?>

php基础_html_25

 

 

 数组

PHP中定义数组的方式常用的有两种,分别是索引数组和关联数组

索引数组

<?php
    // 声明一个数组
    $arr = array("hello",123,true);
    echo $arr[0]
?>

 

我们通过索引数组可以发现PHP和JavaScript定义数组的方式是不一样的,必须通过array函数进行定义

不可以直接进行字面量定义

下面的代码是错误的

$arr = ["马士兵",123,true]

输出的时候有两种:

第一种是echo

echo $arr[0]

php基础_逻辑与_26

但是echo有一个弊端,只能返回某一个值,如果想要echo整个数组,则返回的是一个array的字符串

echo $arr

php基础_javascript_27

查看数组的全貌可以使用print_r()函数来进行输出

    print_r($arr) 

 php基础_php_28

 

 

 

方括号是数组的下标索引值,箭头指向的值对应下面的值

 关联数组

第二种数组的定义方式是关联方式

<?php
    // 声明数组
    $arr = array("name"=>"小明","age"=>18,"sex"=>"");
    print_r($arr)
?>

php基础_php_29

和对JavaScript的数组认知的不同的是关联方式定义的数组是一个自定义的key(下标索引值)

获取对应的参数也是通过方括号枚举对应的key得到的

<?php
    // 声明数组
    $arr = array("name"=>"小明","age"=>18,"sex"=>"");
    print_r($arr);
    echo($arr["name"])
?>

php基础_逻辑与_30

 

 

和我们认知的JavaScript的数组相似的地方是可以自定义索引值参数,中间可以跳过

<?php
    // 声明一个数组
    $arr = array("hello",123,true);
    $arr[100] = '你好';
    print_r($arr)
?>

php基础_逻辑与_31

 

 获取数组的长度(length)

echo count($arr)

php基础_html_32

 

 案例:

设置列表渲染数组

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<?php
    $arr=array("墨鱼仔","炭烧八爪鱼","深海小鱼","阳春湖大闸蟹")
?>
<ul>
    <?php for($i=0;$i<count($arr);$i++) {?>
        <li>
            <?php echo $arr[$i] ?>
        </li>
<?php } ?>
</ul>


</body>
</html>

 

php基础_html_33

 

 设置表格的隔行变色

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style lang="css" scoped>
        .skyblue{
            background-color: skyblue;
        }
        .pink{
            background-color: pink;
        }
        table{
            border-collapse: collapse;

        }
        tr td{
            width: 100px;
            height: 50px;
            border: 1px solid #fff;
        }
    </style>
</head>
<body>
    <table>
       <?php for($i=0;$i<10;$i++) { ?>
        <tr <?php if($i%2==0){echo "class='skyblue'";}else{echo "class='pink'";}?>>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <?php }?>
    </table>
</body>
</html>

php基础_数组_34