Web开发快速入门基础篇(3)PHP基础
3.PHP基础
基本语法
php文件结尾后缀为.php
内容如下
<?php
// 此处写 PHP 代码
?>
注释
//注释,当前行注释
/**
*多行注释
**/
这两种是注释,注释一般是来相当于备注,你这段代码是干什么用的,这一块是什么意思。注释很重要,
一个是方便你们以后回头再看这段代码,知道是什么,改起来方便。另一个是团队协作中,让别人知道你这是什么意思,养成一个好的习惯,开发规范
变量
$x =5;
//$创建一个变量,名字叫做x,临时存数据,存的是数5
顺便一提开发规范,变量名字请用英文
如姓名,请用name,username,nickname
不要用xingming这种拼音
头像,你可以用headpic,avatar
不要用touxiang
不会你可以查单词,还能学几个新单词,学学英文,一个是规范,大家一看可以理解这个变量是存的什么。另一个是装逼,显得高大上。
包括变量名,函数名,文件名
请使用英文
php代码,每一行结尾加分号 ;
加减乘除操作
以及i,变量i基础上 增加1
if else判断switch
if($i > 10){
//i大于10,执行这里面代码
}
else{
//不大于10,执行这里代码
}
for while循环
for ($i=0; $i<=10; $i++) {
echo "数字是:$i <br>";
}
变量i初始值是0,如果i小于等于10,i++,就是加1,然后继续执行。就是echo输出。直到i一直加,加到i = 11,这个时候大于10了,不满足i <= 10 这个条件,退出循环
json处理
php处理json数据
decode解码,把json变成数组,php可以处理的数据
encode编码,把数据变成json,让前端可以处理
php函数
什么是函数function,函数就是一个写好的一个方法,比如你经常写求a+b等于几,写的多了是不是麻烦,你就写到一个函数里,函数接收参数,return返回一个值
function add($a,$b){
return $a+$b;
}
函数名字add,输入两个变量a,b,return返回a+b
数组操作
数组存一些复杂的数据,比如存一个你得用户信息
[
'用户名' => 'aa',
'密码' => 'bb'
//。。。等等
]
$arr = array(); //创建php数组
/*
*php数组三种形式,索引,关联,多维数组
*/
//索引
$arr = array("aaa","bbb","ccc");
$arr[0] = "aaa";
$arr[1] = "bbb";
$arr = array(
"0" => "aaa"
);
//数组取值 $arr[0]
//关联
$arr = array(
"name" => "aaa",
"sex" => "boy"
);
foreach ($arr as $key => $value) {
//$key 每个键值对的key
}
for ($i=0; $i < count($arr); $i++) {
//$arr[$i]
}
//多维数组
$arr = array(
"aaa" => array("a1","a2"),
"bbb" => array("b1","b2"),
);
$arr[0] = array("a1","a2");
字符串操作
有时候经常处理一些字符串,如从一个字符串取出来特定数据,或者分割字符串
explode(delimiter, string) //字符串 根据分隔符变数组
implode(glue, pieces)//数组 加分隔符 变字符串
htmlspecialchars()// html转义
trim(str)//移除字符串两侧空格
md5()//md5
str_replace(search, replace, subject) //字符串替换
strlen()//字符串长度
strpos()//字符串第一次出现位置
strtolower()//把字符串转换为小写字母。
substr()//返回字符串的一部分。
接收请求
请求就是发消息,核心就是
请求地址发给谁,就是后端的php地址
请求方式怎么发,请求有多种形式,get,post,put等,常见形式get、post必须掌握
请求参数发的什么内容
1.get请求,通过url参数传递数据,简单点说,就是通过网址url,http://域名.com/index.php?name=abc&id=123
一般来说get请求被用来获取数据,请求简单的查询参数,比如查询name为abc的某个数据,同时id=123,查询id是123的数据
因为是通过地址传递,也是看得见的,不会用来发送密码这种敏感信息,以及上传文件之类较大数据,这俩种用post
问:
请求的哪个地址,域名.com/index.php
请求形式是啥,通过url传递参数,get
这里的参数是啥,是问号? 后面的name
2.post请求,是在http post传递,请求的内容不会显示在url地址中
一般来接收表单数据,比如用户填了一个表,注册信息,填了较多数据内容,姓名 年龄 性别等。或者文件上传
当php收到请求,怎么接收
$_GET
$a = $_GET['name']
//接收get请求中参数name,并且存到变量a里面
$_POST
请求调试
很关键,新手经常遇到的问题,大多数可以通过请求调试发现问题
开发过程中怎么调试,看这个请求发出去没有,发的什么内容,返回的什么
通过抓包之类的操作可以获取到,如chrome浏览器的network,以及fiddler,wireshark等工具
Session,Cookie
Session
一般被用来标记用户身份,存储当前这个会话用户信息。简单说就是你打开一个网页,你朋友同时也打开了这个网页。你们都打开了这个网站,网站怎么知道谁是谁,所以要识别这个用户身份。
通常用户登录之后,Session保存user_id用户id,相当于用户身份证,后面这个用户的请求,后端可以通过Session拿到这个user_id的值,就知道是哪个用户操作的。
$_SESSION['user_id']
比如登陆成功后,你看中了个东西,添加到购物车,后端接到发来的添加购物车请求,从Session拿到user_id,然后保存 哪个用户的,他添加的什么商品。
现在前后端分离的项目,多用JWT方式,保存一个token来识别
Cookie
一般是用来保存一些用户数据,保存在用户电脑上,比如用户头像,用户个性签名,用户浏览记录这种
$_COOKIE["user"]
数据库MYSQL操作
这个php原生操作数据库,知道点,框架都得封装好了,原生写得少,数据库连接,以及增删改查处理
$conn = mysql_connect("localhost","root","123");
if(!$conn){
die('error');
}
mysql_select_db("test",$conn); //选择数据库
/**插入**/
$sql = "INSERT INTO TEST (name,sex) VALUES ("aaa","boy")";
mysql_query($sql);
/**查询**/
$sql = "SELECT * FROM TEST WHERE name='aaa'";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
//mysql_fetch_array()取得结果集每行数据
//$row['name']
}
/**更新**/
$sql = "UPDATE TEST SET sex = '111' WHERE name='aaaa'";
$result = mysql_query($sql);
/**删除**/
$sql = "DELETE FROM TEST WHERE name='aaa'";
$result = mysql_query($sql);
mysql_close($conn);