一、入门

1.输出语句
1
2
3
echo echo();  // 常用输出语句
print_r(); // 同上
var_dump(); // 输出时变量类型和值,用于代码调试

注意:php的语法十分严格,每一条语句都必须以分号结束。

2.变量
1
$str = "hello,world.";  //声明变量无需关键字

变量以$符号开头(引用变量时也要带上$)
变量名必须以字母或下划线开头
变量名只能由[0-9a-zA-Z\_]组成
变量名区分大小写


3. 数据类型

String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)

4. 字符串拼接
1
2
3
//JavaScript
str = "0" + "1"; //字符串拼接
str = `Hello, ${name}.`; //模板字符串
1
2
3
//PHP
$str = "0"."1"; //字符串拼接
$str = "Hello, {$name}!"; //占位符

5. 分支语句

if,switch,for语句以及函数定义皆同js

二、数组

1.分类
  • 索引数组(下标为数字)

    声明
    1
    $cars = array("大众", "宝马", "现代");
    遍历
    1
    2
    3
    for($i = 0; $i < count($cars); $i++){
    echo "下标:{$i},数据:{$cars[$i]}<br />";
    }

  • 关联数组(又名键值数组,下标为字符串,类似ES6的map数据类型)

    声明
    1
    $arr = array("id" => 1, "name" => "晓明", "age" => "30");
    遍历
    1
    2
    3
    foreach($arr as $key => $value){
    echo "下标:{$key},数据:{$value}<br />";
    }

  • 全局数组
    $_GET:通过get方法提交过来的所有数据
    $_POST:通过get方法提交过来的所有数据


2.方法
1
2
3
4
5
6
count(array);   //返回数组长度
array_pop(array); //从数组末尾取下一个元素
array_push(array, elements); //向数组末尾添加元素
array_shift(array); //从数组头部取下一个元素
array_unshift(array, elements); //向数组头部添加元素
array_rand(array, n); //从数组中随机选出n个元素,默认为1

三、前后端交互

  1. jQuery发起get/post请求
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function loginSend() {
$("#login-button").click(function () {
$.ajax({
type: "post",
url: "./php/login.php",
data: {
username: $("#username").val(),
password: $("#password").val()
},
success: function (result) {
console.log(result);
},
error: function (msg) {
console.log(msg);
}
})
})
}
  1. PHP处理请求,并返回结果
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <?php
    header('content:text/html;charset="utf-8"');

    // 统一返回数据格式
    $responseData = array('code'=>0,'message'=>'');

    //接收前端数据
    $username = $_POST['username'];
    $passward = $_POST['password'];

    //验证表单
    if(!$username){
    $responseData['code'] = 1;
    $responseData['message'] = "用户名不能为空";
    echo json_encode($responseData);
    exit;
    }
    if(!$passward){
    $responseData['code'] = 2;
    $responseData['message'] = "密码不能为空";
    echo json_encode($responseData);
    exit;
    }

    //连接数据库
    $link = mysql_connect('localhost','root','123456');

    //判断是否连接成功
    if(!$link){
    $responseData['code'] = 3;
    $responseData['message'] = "数据库连接失败";
    echo json_encode($responseData);
    exit;
    }

    //设置字符集
    mysql_set_charset('utf8');

    //选择数据库
    mysql_select_db('yyy');

    //MD5加密
    $str = md5(md5(md5($passward)."zhongguo")."guangzhou");

    //准备SQL语句
    $sql = "SELECT * FROM users WHERE username = '{$username}' AND password = '{$str}'";

    //发送SQL语句
    $res = mysql_query($sql);

    //处理结果
    $row = mysql_fetch_assoc($res);
    if(!$row){
    $responseData['code'] = 4;
    $responseData['message'] = "用户名或密码错误";
    echo json_encode($responseData);
    exit;
    }else{
    $responseData['message'] = "登陆成功";
    echo json_encode($responseData);
    }

    //关闭数据库
    mysql_close($link);
    ?>