php 是一种后台编程语言 使用php可以开发动态网站和后台接口 (所谓接口就是url地址,用于给前端提供数据) 前后端分离 全栈
php基本语法
- 变量
- 字符串拼接
- 单引号双引号
- 内容输出
- 数据类型
- 运算符
- 循环语句
- 函数
变量
在php 中 变量必须以$开头 字母/数字/下划线 不能以数字开头 区分大小写
内容输出
- echo 输出简单数据类型 如字符串 数值等
- print_r() 输出复杂数据类型 数组
- var_dump() 输出详细信息 如数组 对象
区别
// js单引号 双引号的区别
// json的作用用来传输数据 XML <name>zhangsan</name>
var json = '{"name": "zhangsan", "age": "18", "gender": "male"}';
//var json = "{'name': 'zhangsan', 'age': '18', 'gender': 'male'}";
var obj = JSON.parse(json);
console.dir(obj);
//js中二维数组的遍历
var arr = [];
arr[0] = [1,2,3];
arr[1] = [4,5,6];
for(var i = 0; i < arr.length; i++) {
for(var j = 0; j < arr[i].length; j++) {
console.log("索引为"+ i + "," + j + '--------' + arr[i][j]);
}
}
//数据类型的判断
//typeof instaceof
console.log(Object.prototype.toString.call([]));
console.log(Object.prototype.toString.call({}));
//Uncaught TypeError: Math is not a constructor Math 不是一个构造方法
//console.log(Object.prototype.toString.call(new Math()));
//Math 是一个内置对象 所以不用创建实例 直接使用即可
//Date 不是一个内置对象 所以创建实例再使用
var date = new Date()
console.log(Object.prototype.toString.call(date));
console.log(date.toString())
//1.所有的php相关代码都要写在这里面
//2.echo的作用向页面输出字符串
echo '<div>HELLO WIRLD</div>';
//-------------------------------------------
//3.变量
/*
1.必须以$开始
2.只能包括数字 字母 下划线
3.区分大小写
4.不能以数字开头
*/
$num = 1;
echo $num;
//-------------------------------------------
//4.字符串拼接 js + php .
echo "<div>" . $num . "</div>";
//5.单引号和双引号的区别
/*
1.单引号对于其中的变量当作普通字符串
2.双引号对于其中的变量解析成变量值
*/
echo "<div>$num</div>";
echo '<div>$num</div>';
//-------------------------------------------
// 数组声明的方式
/*
1. $arr = arryay();
2. $arr1 = array("1")
*/
//count是一个内置函数 用来计算数组的长度
$arr = array(1, 2, 3);
$arr1 = array("a"=>"123","b"=>"456","c"=>"789");
//数组遍历的第一种方式
for ($i = 0; $i < count($arr); $i ++) {
echo $arr[$i];
}
//数组遍历的第二种方式
foreach ($arr1 as $value) {
echo $value;
}
//数组第三种遍历方式
foreach ($arr1 as $key => $value) {
echo $key.'---------'. $value . '<br/>';
}
//php二维数组
$arr3 = array();
$arr3['zhangsan'] = array('age'=>18,'gender'=>'male');
$arr3['lisi'] = array('age'=>'28','gender'=>'male');
$arr3['wangwu'] = array('age'=>'38','gender'=>'female');
//内容输出的三种形式
/*
echo 关键字 输出简单数据类型 数值 字符串
print_r() 方法 输出复杂的数据类型 数组
var_dump() 方法 输出详细信息 对象 数组
*/
print_r($arr3);
var_dump($arr3);
//数据类型
//使用方法 getType()
$str = 'aaa';
echo getType($str);
echo getType($arr);
预定义变量
//不需要声明 直接使用
//$_GET $_POST
/*
get: 不安全的 长度受限 速度快
post: 安全的 长度不受限 可以上传下载文件
*/
/*
http协议的常用的请求方式(增删改查)
get 用来从服务器获取数据 参数一般作为查询条件
post 用来添加数据
put 用来修改数据
delete 用来删除数据
*/
//http://chen.com/day03/php1.php?flag=1
//$_GET['flag'] 得到了url地址中传递的参数的值
$para = $_GET['flag'];
if ($para == 1) {
echo "得到数据";
} else {
echo "参数错误";
}
函数
//自定义函数
//1. 函数名不区分大小写
$num1 = 10;
$re = fun($num1);
function Fun($num1) {
return $num1;
}
echo $re;
//系统函数
$arr = array(1, 2, 3);
$arr1 = array("a"=>"123","b"=>"456","c"=>"789");//{"a":"123","b":"456","c":"789"}
//json对象
$str = '{"name": "zhangsan", "age":"18"}';
$json = json_encode($arr1);
echo $json;
案例
- 通过后台接口渲染数据
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>成绩</title>
</head>
<body>
<h1>欢迎</h1>
<?php
//静态网站的可维护非常低
// 1.复用性高 2.维护性高
//服务器渲染界面
$arr = array();
$arr['123'] = array('username' => '张三', 'math' => '140', 'english' => '60', 'chinese' => '80');
$arr['124'] = array('username' => '王五', 'math' => '40', 'english' => '40', 'chinese' => '100');
$arr['125'] = array('username' => '赵六', 'math' => '140', 'english' => '120', 'chinese' => '110');
$code = $_POST['code'];
if($code == 'admin') {
foreach ($arr as $value) {
echo "
<ul>
<li>姓名:$value[username]</li>
<li>数学:$value[math]</li>
<li>英语:$value[english]</li>
<li>语文:$value[chinese]</li>
</ul>
";
}
}else {
$score = $arr[$code];
echo "
<ul>
<li>姓名:$score[username]</li>
<li>数学:$score[math]</li>
<li>英语:$score[english]</li>
<li>语文:$score[chinese]</li>
</ul>
";
}
?>
</body>
</html>
//后台接口
echo 'Weclome!!!!';
//预定义变量
//$_GET...
//前后端分离
//mime类型
header('Content-Type:text/html; charset=utf-8');
echo
'<div>
<span>张三</span>
<span>18</span>
</div>'