-最后一次修改日期:
前景提要:因要求两个模块二选一以及选修需要修满8学分,为此我选择了卡极限。
模块1(WEB系统与PHP技术+J2EE与中间件技术+微服务与分布式架构)
和四个选修总计 8 学分,详情如下:
WEB前端开发应用技术(3学分)
大数据分析与处理技术(2学分)
算法分析与设计(2.5学分)
文献检索(0.5学分)
之所以这样选,很大一部分原因在于,文献检索是门好课,陈老师的课,如此可以少上一门课;算法分析与设计与文献检索捆绑了,尽管它难度不低,但是水一水也能凑合;WEB前端开发应用技术与云开发方向相辅相成;大数据分析与处理技术是陈老师的课,嗯,陈老师,懂得都懂。
恰好,翻斗花园很多功能需要php技术来实现,寒假正无聊呢,不妨来提前浅浅过一遍php,说不定能够派上用场,让翻斗花园功能更上一层楼!(幻想ing… …)
PHP技术
【从这里开始吧】
入门
脚本标记:
<?php
//脚本标记
echo 'hello world';
?>
到放弃
php怎么不能在VS 上面运行啊???受不了了,只能下载小皮面板了,但是你这个速度???嗯?
好吧继续
大小写敏感
所有用户定义的函数、类和关键词(ifelseecho…)对大小写不敏感
ECHO "Hello jingheng!<br>";
echo "Hello jingheng!<br>";
但所有变量对大小写敏感
$color="red";
echo "My pants is " $color "<br>";
echo "My pants is " $COLOR "<br>";
空白符
echo 'jingheng
what are
you doing
now?';
/**
I am looking
tiktok gril
*/
变量
$a=5;
$b=6;
$c=$a+$b;
echo $c;
=号叫作赋值
命令行
$input = readline("请输入内容:");
echo "您输入的内容是:" . $input;
数据类型
字符串、整数、浮点数、逻辑(布尔型)、数组、对象、NULL、资源类型
用 var_dump() 会返回变量的数据类型和值,一般用于开发调试
echo gettype($a) 只获取数据类型。
字符串
字符串是字符序列,比如“Hello world!”。
字符串可以是引号内的任何文本,可以使用单引号或双引号。
注意单引号和双引号的区别
$x = "Hello world!";
echo $x;
echo "<br>";
$x = 'Hello world!';
var_dump($x);
整数
十进制、十六进制(前缀是 0x )或八进制(前缀是 0 )
$x = 5985;
var_dump($x);
echo "<hr>";
$x = -345; // 负数
var_dump($x);
echo "<hr>";
$x = 0x8C; // 十六进制
var_dump($x);
echo "<hr>";
$x = 047; //八进制
var_dump($x);
浮点数
浮点数是有小数点或指数形式的数字
$x = 10.365;
var_dump($x);
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);
逻辑(布尔值)
$x = true;
$y = false;
数组
在一个变量中存储多个值
分为一维数组和多维数组
$cars = array("A","B","C");
$_cars = ["A","B","C"];
var_dump($cars);
var_dump($_cars);
NULL
特殊的 NULL 值表示变量无值。
EOF结束符
<?php
$abc = 'JingHeng666';
echo <<< EOF
ABCDEFG
EOF;
?>
EOF定界符的使用:
- 以 <<<EOF 开始标记开始,以 EOF 结束标记结束
- 结束标记必须顶头写,独自占一行,不能缩进和空格
- 在结束标记末尾要有分号
- EOF 可以用任意其他字符代替,开始标记和结束标记相同即可。
但要保证开始和结束标记不在正文中出现。 - 位于开始标记和结束标记之间的变量可以被正常解析,但是函数不可以。
在 heredoc 中,变量不需要用连接符 . 和 , 来拼接。 - 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义。
EOF的解析:
<?php
$abc = 'jingheng123';
echo <<<EOF
'1234'JSON$abc "JSONJSON"
JSONJSONJSON
EOF;
?>
以上代码输出结果为:
'1234'JSONjingheng123 "JSONJSON"
JSONJSONJSON
EOF定界符(heredoc) 和 (nowdoc):
$name = "JingHeng";
echo <<< EOF
我是 $name 呀
EOF;
$name = "JingHeng";
echo <<< 'EOF'
我是 $name 呀
EOF;
变量的解析
<?php
$a = <<< EOF
<a> html 格式会被解析 </a></br>
你看看a标签显示了没
你看看br显示了没?
<br>
EOF;
echo $a; // 输出变量
?>
直接连接
$name ="JingHeng";
echo "Hello," . $name;
echo 'Hello,' . $name;
echo "Hello,$name";
echo输出多个变量
$name = "JingHeng";
echo "Hello,", $name;
模板字符串
echo "Hello, {$name}";
$name = ["name" => "JingHeng"];
echo "Hello, {$name['name']}";
print()和sprintf()
print是直接输出,返回字符串的长度
sprintf不输出,但有返回值
$name = "JingHeng";
$age = 20;
print("我是 %s, 今年 %s",$name, $age);
$test = sprint("我是 %s, 今年 %s",$name, $age);
var_dump($test);
运算符
算数运算符
运算符 | 名称 | 描述 | 实例 | 结果 |
---|---|---|---|---|
x+y | 加 | x和y的和 | 2+2 | 4 |
x-y | 减 | x和y的差 | 5-2 | 3 |
x*y | 乘 | x和 y的积 | 5*2 | 10 |
x/y | 除 | x和y的商 | 15/5 | 3 |
x%y | 模 | x除以y的余数 | 5%2 10%8 10%2 | 1 2 8 |
-x | 负数 | 取x的相反符号 | <?php $x = 2; echo -&x; ?> | -2 |
~x | 取反 | x取反,按照二进制位进行“取反”运算。 运算规则: ~1=2; ~0=1; | <?php $x = 2; echo ~$x; ?> | -3 |
a . b | 并置 | 连接两个字符串 | “Hi” . “Ha” | HiHa |
<?php
$x = 10;
$y = 6;
echo ($x + $y);//输出16
echo '<br>';
echo ($x - $y);//输出4
echo '<br>';
echo ($x * $y);//输出60
echo '<br>';
echo ($x / $y);//输出1.666666667
echo '<br>';
echo ($x % $y);//输出4
echo '<br>';
echo ~$x;
//整数之间的整除,参数也必须是整数,向下取整
var_dump(intdiv(10, 3));//输出3
?>
赋值运算符
运算符 | 等同于 | 描述 |
---|---|---|
x = y | x = y | 左操作数被设置为右侧表达式的值 |
x += y | x = x + y | 加 |
x -= y | x = x – y | 减 |
x *= y | x = x * y | 乘 |
x /= y | x = x / y | 除 |
x %= y | x = x % y | 模(除法的余数) |
a .= b | a = a . b | 连接两个字符串 |
<?php
$x = 10;
echo $x;// 输出 10
$y = 20;
$y += 100;
echo $y;// 输出 120
$z = 50;
$z -= 25;
echo $z;// 输出 25
$i = 5;
$i *= 6;
echo $i;// 输出 30
$j = 10;
$j /= 5;
echo $j;// 输出 2
$k = 15;
$k %= 4;
echo $k;// 输出 3
?>
递增/递减运算符
运算符 | 名称 | 描述 |
---|---|---|
++ x | 预递增 | x 加 1,然后返回 x |
x ++ | 后递增 | 返回 x,然后 x 加 1 |
— x | 预递减 | x 减 1,然后返回 x |
x — | 后递减 | 返回 x,然后 x 减 1 |
<?php
$x = 10;
echo ++$x; // 输出 11
$y = 10;
echo $y++; // 输出 10
$z = 5;
echo --$z; // 输出 4
$i = 5;
echo $i--; // 输出 5
?>
比较运算符
运算符 | 名称 | 描述 | 实例 |
---|---|---|---|
x == y | 等于 | 如果 x 等于 y,则返回 true | 5 == 8 返回 false |
x === y | 绝对等于 | 如果 x 等于 y,且它们类型相同,则返回true | 5 === ‘5’,返回 false |
x != y | 不等于 | 如果 x 不等于 y,则返回 true | 5 != 8 返回 true |
x <> y | 不等于 | 如果 x 不等于 y,则返回 true | 5 <> 8 返回 true |
x !==y | 不绝对等于 | 如果 x 不等于 y,且它们类型不相同,则返回true | 5 !== ‘5’ 返回true |
x > y | 大于 | 如果 x 大于 y ,则返回 true | 5 > 8 返回 false |
x < y | 小于 | 如果 x 小于 y ,则返回 true | 5 < 8 返回 true |
x >= y | 大于等于 | 如果 x 大于或等于 y,则返回 true | 5 >= 8 返回 false |
x <= y | 小于等于 | 如果 x 小于或等于 y,则返回 true | 5 <= 8返回 true |
<?php
$x = 100;
$y = "100";
var_dump($x == $y);
echo "<br>";
var_dump($x === $y);
echo "<br>";
var_dump($x != $y);
echo "<br>";
var_dump($x !== $y);
echo "<br>";
$a = 50;
$b = 90;
var_dump($a > $b);
echo "<br>";
var_dump($a < $b);
?>
逻辑运算符
运算符 | 名称 | 描述 | 实例 |
---|---|---|---|
x and y | 与 | 如果 x 和 y 都为 true,则返回 true | x=6 y=3 (x < 10 and y > 1) 返回 true |
x or y | 或 | 如果 x 和 y 至少有一个为 true,则返回 true | x=6 y=3 (x==6 or y==5) 返回 true |
x xor y | 异或 | 如果 x 和 y 有且仅有一个为 true,则返回 true | x=6 y=3 (x==6 xor y==3) 返回 false |
x && y | 与 | 如果 x 和 y 都为 true,则返回 true | x=6 y=3 (x < 10 && y > 1) 返回 true |
x || y | 或 | 如果 x 和 y 至少有一个为 true,则返回 true | x=6 y=3 (x ==5 || y ==5) 返回 false |
! x | 非 | 如果 x 不为 true,则返回 true | x=6 y=3 !(x==y) 返回true |
and 和 && 的区别,or 和 || 的区别
- && 运算符的优先级比 and 运算符高
- 这意味着,在一个表达式中 && 运算符会被优先执行,然后才是 and 运算符
<?php
//在表达式中使用 && 运算符
$bool = true && false;
// 显示&&运算符的运算结果为 false
echo "&&运算符的结果为:";
if($bool){
echo 'true';
}
else{
echo 'false';
}
echo '----'
//在表达式中使用 and 运算符
$bool = true and false
//显示 and 运算符的运算结果为 true
if($bool){
echo 'true';
}
else{
echo 'false';
}
//先执行 $bool = true,再执行 and false
?>
阻断效果
// or-前面语句值为真,or后面不执行;否则,执行
$result = 0 or var_dump('执行我的语句'); // 输出-执行我的语句
var_dump($result); // int 0
$result = 2 or var_dump('执行我的语句'); // 不输出
var_dump($result); //int 2
条件语句
if语句
仅当指定条件成立时执行代码
if (条件)
{
条件成立时要执行的代码
}
if…else…语句
if (条件)
{
条件成立执行的代码
}
{
条件不成立执行的代码
}
if…elseif…else
if (条件)
{
if条件成立时执行
}
elseif (条件)
{
elseif条件成立时执行
}
else
{
以上均不成立时执行
}
switch
注意:break 不要漏掉
<?php
switch (n)
{
case label1:
如果 n==label1,此处代码执行;
break;
case label2:
如果 n==label2,此处代码执行;
break;
default:
如果n 既不等于 label1,也不等于 label2,此处代码将执行;
}
?>
循环
让相同的代码块一次又一次地重复运行
for 循环
用于预先知晓代码需运行次数
for (初始值; 条件; 增量)
{
循环体;
}
(懒得解释,太简单了),例如:
for ($i=1, $j=0; $i<=5; )
{
echo "数字为 " . $i . "和 " . $j . PHP_EOL;
$i++;
$j++;
}
数字为 1和 0
数字为 2和 1
数字为 3和 2
数字为 4和 3
数字为 5和 4
while循环
只要条件成立,就循环执行代码块,直至条件不成立为止
while (条件)
{
要执行的代码块
}
$i = 1;
while ($i <= 5)
{
echo "数字是 " . $i . "<br>";
$i++;
}
echo "已结束"
数字是 1<br>
数字是 2<br>
数字是 3<br>
数字是 4<br>
数字是 5<br>
已结束
do…while
语句会至少执行一次代码,然后再检查条件。只要条件成立就会重复进行循环。
do
{
要执行的代码块;
}
while (条件);
$i = 1;
do
{
$i++;
echo "数字是 " . $i . "<br>";
}
while ($i <= 5);
echo "已跳出"
数字是 2<br>
数字是 3<br>
数字是 4<br>
数字是 5<br>
数字是 6<br>
已跳出
continue 和 break
continue:
for ($i = 0; $i < 5; $i++ ){
if($i == 3){
continue;
}
echo $i;
}
0124
break:
for ($i = 0; $i <5; $i++){
if($i > 3){
break;
}
echo $i;
}
0123
break 2:
for ($i = 0; $i <3; $i++) {
echo "外层循环:" . $i . "<br>";
for ($j = 0; $j < 5; $j++){
echo "内层循环:" . $j . "<br>";
if ($j == 4){
break 2; //跳出两层循环
}
}
}
echo "已跳出全部循环"
外层循环:0<br>
内层循环:0<br>
内层循环:1<br>
内层循环:2<br>
内层循环:3<br>
内层循环:4<br>
已跳出全部循环
在 while 中使用 continue break和break2
$a = 10;
while ($a <= 20){
$a++;
if($a == 15){
//break;
continue;
}
echo $a.'---';
}
11---12---13---14---16---17---18---19---20---21---
$a = 10;
while ($a <= 20) {
$a++;
if($a == 15) {
for($i = 0; $i < 5; $i++) {
if($i == 3) {
break 2;
}
echo '<br>' .$i. '<br>';
}
}
echo $a.'---';
}
11---12---13---14---<br>0<br><br>1<br><br>2<br>
foreach 循环
用于遍历数组
数组
数组能够在单个变量中存储多个值,并且可以根据 键 访问其中的值
数值数组
$jingheng1 = array("敬恒1","敬恒2","敬恒3","敬恒4","敬恒5");
$jingheng2 = ["敬恒1","敬恒2","敬恒3","敬恒4","敬恒5"];
//使用 var_dump 输出
var_dump($jingheng1[1]);
var_dump($jingheng2[4]);
//使用 print_r 输出
print_r($jingheng1);
print_r($jingheng2);
//使用 var_dump 输出
array(5) {
[0]=> string(7) "敬恒1"
[1]=> string(7) "敬恒2"
[2]=> string(7) "敬恒3"
[3]=> string(7) "敬恒4"
[4]=> string(7) "敬恒5"
}
array(5) {
[0]=> string(7) "敬恒1"
[1]=> string(7) "敬恒2"
[2]=> string(7) "敬恒3"
[3]=> string(7) "敬恒4"
[4]=> string(7) "敬恒5"
}
//使用 print_r 输出
Array (
[0] => 敬恒1
[1] => 敬恒2
[2] => 敬恒3
[3] => 敬恒4
[4] => 敬恒5
)
Array (
[0] => 敬恒1
[1] => 敬恒2
[2] => 敬恒3
[3] => 敬恒4
[4] => 敬恒5
)
对不同的键设置不同的值
$jingheng2 = [];
$jingheng2[1] = '1';
$jingheng2[3] = '3';
$jingheng2[5] = '5';
var_dump($jingheng2);
//数组赋值输出
array(3) {
[1]=> string(1) "1"
[3]=> string(1) "3"
[5]=> string(1) "5"
}
关联数组
关联数据是使用分配给数组的指定的键 的数组
$writetime = ["jingheng" => "20", "time" => "20250116"];
//或者
$writetime['jingheng'] = '20';
$writetime['time'] = '20250116';
//特殊情况
$jingheng=[
"2",
"test" => "jingheng",
"3",
"test" => "jingheng",
"4"
];
print_r($jingheng);
//特殊情况输出
Array (
[0] => 2
[test] => jingheng
[1] => 3
[2] => 4
)
获取数组的长度 – count() 函数
echo count($jingheng);
遍历数组
for($i = 0; $i < count($jingheng); $i++ ) {
echo $jingheng[$i];
echo "<br>";
}
foreach ($jingheng as $value){
要执行的代码块;
}
foreach ($jingheng as $key => $value){
要执行的代码块;
}
for 可以, while 可以, 但最常用的是 foreach
//foreach value as:
foreach($jingheng as $value)
{
echo $value;
echo '<br>';
}
//foreach key as:
foreach($jingheng as $key => $value)
{
echo $key .'--'. $value;
echo '<br>';
}
多维数组
多维数组是包含一个或多个数组的数组…250116
了解 翻斗花园小秘密 的更多信息
订阅后即可通过电子邮件收到最新文章。