WEB系统与PHP技术
本文最后更新于 159 天前,其中的信息可能已经有所发展或是发生改变。

-最后一次修改日期:

前景提要:因要求两个模块二选一以及选修需要修满8学分,为此我选择了卡极限。
模块1(WEB系统与PHP技术+J2EE与中间件技术+微服务与分布式架构)
和四个选修总计 8 学分,详情如下:
WEB前端开发应用技术(3学分)
大数据分析与处理技术(2学分)
算法分析与设计(2.5学分)
文献检索(0.5学分)

img

之所以这样选,很大一部分原因在于,文献检索是门好课,陈老师的课,如此可以少上一门课;算法分析与设计与文献检索捆绑了,尽管它难度不低,但是水一水也能凑合;WEB前端开发应用技术与云开发方向相辅相成;大数据分析与处理技术是陈老师的课,嗯,陈老师,懂得都懂。

恰好,翻斗花园很多功能需要php技术来实现,寒假正无聊呢,不妨来提前浅浅过一遍php,说不定能够派上用场,让翻斗花园功能更上一层楼!(幻想ing… …)


PHP技术

【从这里开始吧】

入门

脚本标记:

<?php
   //脚本标记
   echo 'hello world';
?>

到放弃

img

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+yx和y的和2+24
x-yx和y的差5-23
x*yx和 y的积5*210
x/yx和y的商15/53
x%yx除以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 = yx = y左操作数被设置为右侧表达式的值
x += yx = x + y
x -= yx = x – y
x *= yx = x * y
x /= yx = x / y
x %= yx = x % y模(除法的余数)
a .= ba = 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,则返回 true5 == 8 返回 false
x === y绝对等于如果 x 等于 y,且它们类型相同,则返回true5 === ‘5’,返回 false
x != y不等于如果 x 不等于 y,则返回 true5 != 8 返回 true
x <> y不等于如果 x 不等于 y,则返回 true5 <> 8 返回 true
x !==y不绝对等于如果 x 不等于 y,且它们类型不相同,则返回true5 !== ‘5’ 返回true
x > y大于如果 x 大于 y ,则返回 true5 > 8 返回 false
x < y小于如果 x 小于 y ,则返回 true5 < 8 返回 true
x >= y大于等于如果 x 大于或等于 y,则返回 true5 >= 8 返回 false
x <= y小于等于如果 x 小于或等于 y,则返回 true5 <= 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,则返回 truex=6
y=3
(x < 10 and y > 1) 返回 true
x or y如果 x 和 y 至少有一个为 true,则返回 truex=6
y=3
(x==6 or y==5) 返回 true
x xor y异或如果 x 和 y 有且仅有一个为 true,则返回 truex=6
y=3
(x==6 xor y==3) 返回 false
x && y如果 x 和 y 都为 true,则返回 truex=6
y=3
(x < 10 && y > 1) 返回 true
x || y如果 x 和 y 至少有一个为 true,则返回 truex=6
y=3
(x ==5 || y ==5) 返回 false
! x如果 x 不为 true,则返回 truex=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


了解 翻斗花园小秘密 的更多信息

订阅后即可通过电子邮件收到最新文章。

本文来自 翻斗花园小秘密,原文链接:WEB系统与PHP技术,作者:JingHeng。本站版权所有,未经许可,严禁转载或用于任何商业用途。

暂无评论

发送评论 编辑评论


				
上一篇
下一篇