学习网址
https://www.w3school.com.cn/php/index.asp
PHP的外壳
注意:PHP的文件名一定不能有中文,因为php的核心是面向服务器的,又因为服务器的路径是不允许有中文的
PHP脚本语言,它的外层长的和html机构很像,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>
<h1>你好PHP <?php echo 3+2 ?> </h1>
<?php echo (3*2) ?>
</body>
</html>
上面的代码是php文件,并不是html文件,与其说是html代码中使用了php代码,不如说是php代码利用html结构进行了辅助。即便是脱离了html的机构,也可以实现php代码的执行
<?php echo (3*2) ?>
下面的代码是错误的,因为php代码是不能进行嵌套的
<?php echo 1+2;
<?php echo 2+3?>
?>
- php的壳子可以在任意的地方进行使用,因为php本身就是一个脚本语言
- php不可以进行嵌套
- php会将文件扁平化后进行返回
echo输出函数
<?php echo(1+3)?>
等价于
<?php echo 1+3?>
第一种输出是echo()内部填写表达式,我们认为()内部在执行这些表达式,所以把echo当做是函数。
echo函数内部进行的是简单的表达式计算
如果多个echo一定要有分号隔开
<?php
echo 1;
echo 2;
echo 3;
?>
echo 只能输出基本类型值(数字,字符串,布尔值),布尔值会隐式转换为1 和 空
如果输出的字符串是一个html的标签结构,则会识别这个结构并且输出
<meta charset="utf-8">
<?php
echo "你好PHP";
echo "<br/>";
echo 123;
echo "<br/>";
echo true;
echo "<br/>";
echo false;
?>
<?php
echo "<h1>你好</h1>"
?>
变量和连字符
JavaScript中定义一个变量使用的是var,php中定义一个变量是$;
<meta charset="utf-8">
<?php
// 声明变量
$a = "你好PHP";
$b = "我来啦";
// 通过连字符连起来a和b
echo $a.$b;
echo "<br/>";
echo "php{$b}"
?>
- php声明变量的关键字使用的是$,需要注意的是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
?>
逻辑与和逻辑或,返回的不是对应的结构而是实实在在的布尔值,然后通过隐式转换变成了1(true)或者空(false)
函数
php中的函数是通过关键字function进行定义,和JavaScript一样
<?php
function add($a,$b){
echo $a+$b;
}
add(1,2)
?>
结果是3
- 和JavaScript不同的是函数的形参必须是$开头
- 函数也可以有声明的提升
<?php
add(5,6);
function add($a,$b){
echo $a+$b;
}
?>
- 和JavaScript函数的另一个区别是PHP函数的内部不能直接获取全局变量的值
$a = 100;
$b = 200;
function add() {
echo $a + $b;
}
add()
- 报错信息为a和b是undefined,所以我们需要使用global来确定从全局获取哪个值
<?php
$a = 100;
$b = 200;
function add() {
global $a;
global $b;
echo $a + $b;
}
add()
?>
//结果300
循环语句
- php中也有流程控制语句(循环语句和条件语句);
- 循环语句:for、while、do-while在PHP中都是支持的
for循环
- 第一种for循环
<meta charset="utf-8">
<?php
for($i = 1; $i <= 100; $i++) {
if($i % 2 == 0) {
echo $i."是偶数";
echo "<br/>";
} else {
echo $i."是奇数";
echo "<br/>";
}
}
?>
//........
//53是奇数
//54是偶数
//55是奇数
//56是偶数
//57是奇数
//58是偶数
//59是奇数
//........
- 第二种for循环是我们用的比较多的场景之一
<meta charset="utf-8">
<?php for($i = 0; $i < 10; $i++){?>
<h2>输出几个数字<?php echo $i?></h2>
<?php }?>
while循环
<?php
$a = 10;
while($a) {
echo $a;
echo "<br/>";
$a--;
}
?>
do-while
<?php
$a = 10;
do{
$a--;
echo $a;
echo "<br/>";
}while($a)
?>
条件语句
PHP中的条件语句和JavaScript条件语句一样支持if和switch;
if 条件语句
<?php
for($i = 1; $i <= 100; $i++) {
if($i % 2 == 0) {
echo $i."是偶数";
echo "<br/>";
} else {
echo $i."是奇数";
echo "<br/>";
}
}
?>
switch语句
<meta charset="utf-8">
<?php
$favfruit="orange";
switch ($favfruit) {
case "apple":
echo "Your favorite fruit is apple!";
break;
case "banana":
echo "Your favorite fruit is banana!";
break;
case "orange":
echo "Your favorite fruit is orange!";
break;
default:
echo "Your favorite fruit is neither apple, banana, or orange!";
}
?>
数组
PHP中定义数组的方式常用的有两种,分别是索引数组和关联数组
索引数组
<meta charset="utf-8">
<?php
// 声明一个数组
$arr = array("你好PHP",123,true);
echo $arr[0]
?>
//输出你好PHP
我们通过索引数组可以发现PHP和JavaScript定义数组的方式是不一样的,必须通过array函数进行定义
不可以直接进行字面量定义
- 输出的时候有两种第一种是echo,但是echo有一个弊端,只能返回某一个值,如果想要echo整个数组,则返回的是一个array的字符串
-
使用print_r()函数来进行输出
<meta charset="utf-8">
<?php
// 声明一个数组
$arr = array("你好PHP",123,true);
print_r($arr)
?>
//结果是----------》Array ( [0] => 你好PHP [1] => 123 [2] => 1 )
方括号是数组的下标索引值,箭头指向的值对应下面的值
关联数组
<meta charset="utf-8">
<?php
// 声明数组
$arr = array("name"=>"小明","age"=>18,"sex"=>"男");
print_r($arr)
?>
///Array ( [name] => 小明 [age] => 18 [sex] => 男 )
和我们对JavaScript的数组认知的不同的是关联方式定义的数组是一个自定义的key(下标索引值)
获取对应的参数也是通过方括号枚举对应的key得到的
<meta charset="utf-8">
<?php
// 声明数组
$arr = array("name"=>"小明","age"=>18,"sex"=>"男");
print_r($arr);
echo "<br/>";
echo($arr["sex"]);
?>
和我们认知的JavaScript的数组相似的地方是可以自定义索引值参数,中间可以跳过
<meta charset="utf-8">
<?php
// 声明数组
$arr = array("name"=>"小明","age"=>18,"sex"=>"男");
$arr[100] = '你好';
print_r($arr);
echo "<br/>";
echo($arr["sex"]);
?>
获取数组的长度(length)
<meta charset="utf-8">
<?php
// 声明数组
$arr = array("name"=>"小明","age"=>18,"sex"=>"男");
$arr[100] = '你好';
print_r($arr);
echo "<br/>";
echo($arr["sex"]);
echo "<br/>";
echo count($arr);
?>