一、概念
PHP是一种通用开源服务端脚本语言,将程序嵌入到HTML文档中去执行,结果以纯 HTML 形式返回给浏览器。
PHP: Hypertext Preprocessor “超文本预处理器”,1994年由Rasmus Lerdorf创建,刚刚开始仅仅是为了要维护他本人个人网页而制作的一个简单程序(Perl语言编写),原名Personal Home Page(PHP由此得名),后用C语言重新编写,改名Hypertext Preprocessor
(一)、PHP能做什么
- 生成动态页面内容
- 创建、打开、读取、写入文件
- 收集ajax数据
- 发送和接收cookie
- 添加、删除、修改您的数据库中的数据
- 限制用户访问您的网站上的一些页面
- 加密数据
二、PHP基本语法
(一)、基本结构<? PHP ?>
<?php //开始
//...php代码
?> //结束
(二)、注释-与JS一样
单行注释://
多行注释:/**/
(三)变量
1、命名规则
(1.1)、以 $ 符号开始,后面跟着变量的名称($称为标识符,不属于变量组成部分)
(1.2)、只能包含字母、数字字符以及下划线,不能以数字开头(不能包含空格)
(1.3)、 区分大小写
PHP 没有声明变量的命令,也没有声明提前的概念。
变量在第一次赋值时被创建:define("MY_NAME", "laoxie");
<?php
$txt="Hello world!";
?>
(四)、作用域
1、$GLOBALS ==> 全局变量
在函数外部定义的变量,可以在任意位置访问(需要手动定义为全局变量)
$GLOBALS 超级全局变量,数组: $GLOBALS[“变量名”]
<?php
$x='global x';
function myTest(){
//echo $x;//报错 Undefined variable:未声明定义的变量
echo $GLOBALS['x']; //1.获取全部变量正确写法:$GLOBALS[变量名],其中变量名不带$。
//2.同时,可以在函数中创建全局变量
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y;
?>
2、 global ==> 局部变量
函数内部声明的变量,仅能在函数内部访问
global关键字: global $变量名
$fruit = "lemon";
function show(){
global $fruit;
echo "<span>我最喜欢吃的水果是".$GLOBALS["fruit"]."</span>";
}
show();
echo $fruit;
(五)、 输出语句
1、echo ==> 关键字
可以输出一个或多个字符串(字符串可以包含HTML标签),速度较快,一般用于向前端返回数据
<?php
//输出一个字符
echo "Hello world!<br>";
//输出多个字符
echo "This", " string", " was", " made", " with multiple parameters.";
?>
2、print_r()
打印关于变量的信息,适用于数组、对象的打印,一般用于测试
3、var_dump()
判断一个变量的类型与长度,并输出变量的数据类型和数值,一般用于测试
(六)拼接字符串
<?php
$myname = "lemon";
echo 'My name is' . $myname; //1.通过并置运算符.拼接字符串及变量
//或者
echo "My name is $myname"; //2.双引号内可以直接输出变量,无需拼接
?>
超级全局变量
$GLOBALS
是PHP的一个包含所有全局变量的数组,可以在任意位置使用$_SERVER
是一个包含了头信息(header)、路径(path)等信息的数组$_POST / $_GET
被广泛应用于收集表单数据,常用于ajax请求等操作$_COOKIE
用于收集前端发送过来的cookie数据$_REQUEST
变量包含了$_GET、$_POST 和 $_COOKIE
的内容$_SESSION
服务器版cookie$_FILES
三、数据类型
1、String(字符串)
2、Integer(整型)
3、Float(浮点型)
4、Boolean(布尔型)
5、Array(数组)
6、Object(对象)
7、NULL(空值)
(一)字符串string
1、strlen() ==> 获取字符串长度,得到的字符的字节数
2、 mb_strlen() ==> 获取字符串长度
3、 strpos() ==> 查找某个字符在字符串中的索引(字节数),如果未找到匹配,则返回 false
$name = "lemon";
echo $name;
echo strlen($name);
echo mb_strlen($name);
echo strpos($name,"e");
(二)数组 Array
1、创建数组
(1)数值数组 ,等同于js的数组array(1,“aa”,3)
$cars=array("Volvo","BMW","Toyota");
(2)关联数组(类似于js对象)
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
* => 代替 :号
(3)多维数组:一般都是外层为数值数组,内层为关联数组(类似于js的数组对象)
$goodslist = array(array(
"goodsName" => "电动牙刷",
"price" => 200
),array(
"goodsName" => "牙线",
"price" =>10
));
var_dump($goodslist);
echo $goodslist[0]["goodsName"];
2.操作数组
数组[索引/‘键’]
3.常用方法
(3.1)count() 获取数组的长度
(3.2)array_rand() 随机获取数组的索引值
(3.3)in_array() 判断某个值是否存在数组中
$arr = array(1,"aa",3,"bb","cc","dd");
var_dump(in_array("aa",$arr));
(3.4)array_slice() 从数组中取出一段
$arr = array(1,"aa",3,"bb","cc","dd");
var_dump(array_slice($arr,-2,2));
4.遍历
(4.1)for() 一般用于遍历数值数组
$arr = array(1,"aa",3,"bb","cc","dd");
for($i=0;$i<count($arr);$i++){
echo $arr[$i];
}
echo $arr[1];
print_r($arr);
(4.2)foreach() 一般用于遍历关联数组
foreach($arr as i t e m ) 遍 历 数 值 数 组 , item) 遍历数值数组, item)遍历数值数组,item代表数组每一项
foreach($arr2 as $key => v a l ) 遍 历 关 联 数 组 , val) 遍历关联数组, val)遍历关联数组,key代表数组每一项的键,$val代表数组每一项的值
$arr = array(1,"aa",3,"bb","cc","dd");
foreach($arr as $item){
echo $item;
}
echo $arr[1];
print_r($arr);
//关联数组: $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
//获取单个值
echo $age['peter'];
//遍历关联数组:foreach..as
foreach($age as $key=>$value){
echo $key .":". $value;
echo "<br>";
}
数组排序
- sort() 对数组进行升序排列
- rsort() 对数组进行降序排列
- asort() 根据关联数组的值,对数组进行升序排列
- ksort() 根据关联数组的键,对数组进行升序排列
- arsort() 根据关联数组的值,对数组进行降序排列
- krsort() 根据关联数组的键,对数组进行降序排列
PHP多维数组怎么渲染到页面
<?php
$brand = array("小米","华为","锤子","iphone","诺基亚","摩托罗拉");
$price = array(2000,10000,9999,5999,998,399);
$color = array("骚粉","原谅绿","女儿红","柠檬黄");
$goodslist = array();
for($i=0;$i<100;$i++){
$goods = array(
"guid" => $i+1,
"goodsName" => $brand[array_rand($brand)],
"price" => $price[array_rand($price)],
"color" => $color[array_rand($color)]
);
$goodslist[$i] = $goods;
}
// var_dump($goodslist);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<ul id="output">
<?php
foreach($goodslist as $item){
echo '<li data-id="'.$item["guid"].'">
<p>商品名:'.$item["goodsName"].'</p>
<p>价格:'.$item["price"].'</p>
<p>颜色:'.$item["color"].'</p>
</li>';
}
?>
</ul>
</body>
</html>