现在是2023年9月,本系列课程基于php8
学习网站推荐:
PHP 教程 (w3school.com.cn)
PHP 教程 | 菜鸟教程 (runoob.com)
PHP 是 “PHP Hypertext Preprocessor” 的首字母缩略词
PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。
PHP 是开源免费的,并且使用广泛 , 可供免费下载和使用,可商用
PHP 脚本在服务器上执行
PHP 是解释型语言,按顺序从上往下执行,无需编译,直接运行
它强大到足以成为在网络上最大的博客系统的核心(WordPress)!
它深邃到足以运行最大的社交网络(facebook)!
而它的易用程度足以成为初学者的首选服务器端语言!
通过 PHP,您可以不受限于只输出 HTML。您还能够输出图像、PDF 文件、甚至 Flash 影片。您也可以输出任何文本,比如 XHTML 和 XML。
PHP 脚本以开头,以
?>
结尾:
PHP 脚本可放置于文档中的任何位置,文件扩展名是 “.php”。
PHP 文件通常包含 HTML 标签以及一些 PHP 脚本代码,注意: html js css可以写在php文件里运行,但php不能写在html js css文件里运行。
PHP 语句以分号结尾(;)
我的第一张 PHP 页面
不同点:
猫叔123!"; echo "Hello world!
"; echo "Maoshu", " string", 1, " 2 "; ?>
相同点:
注释不会被作为程序来读取和执行。它唯一的作用是供代码编辑者阅读(让别人阅读明白,提醒自己做过什么,特别是一些函数方法的用途等)
变量是存储信息的容器,有点类似初中数学里的代数 x=1,y=2
$a=5; $_a = 5; $b=6; $c=$a+$b; echo $c;
=号并不是真实的等号,而是叫赋值
注释:PHP 变量名称对大小写敏感!
推荐的几种命名方法:
$first_name = 'zhang';
$firstName = 'zhang';
$FirstName = 'zhang';
$txt="Hello world!"; $a=5; $b=8.5;
不必告知 PHP 变量的数据类型,php会根据它的值,自动把变量转换为正确的数据类型
变量也有作用域之分,等到后面函数的时候再说。
echo '猫叔 你在干什么 ? '; /** 我在 看抖音小姐姐 */
所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感,
但是所有变量都对大小写敏感
ECHO "Hello 猫叔!
"; echo "Hello 猫叔!
"; EcHo "Hello 猫叔!
"; PRint "Hello 猫叔!
";
$color="red"; echo "My car is " . $color . "
"; echo "My house is " . $COLOR . "
";
可以像python一样在命令行里运行php
用cmd或者vscode插件
可以获取用户输入的内容
$input = readline("请输入内容:"); echo "您输入的内容是: " . $input;
echo "请输入内容:"; $input = fgets(STDIN); echo "您输入的内容是: " . $input;
字符串、整数、浮点数、逻辑(布尔型)、数组、对象、NULL、资源类型
用var_dump() 会返回变量的数据类型和值,一般用于开发调试时使用
只获取数据类型 echo gettype($a);
字符串是字符序列,比如 “Hello world!”。
字符串可以是引号内的任何文本,可以使用单引号或双引号
注意双引号和单引号的区别
$x = "Hello world!"; echo $x; echo "
"; $x = 'Hello world!'; var_dump($x);
和数学里的整数有些区别
$x = 5985; var_dump($x); echo "
"; $x = -345; // 负数 var_dump($x); echo "
"; $x = 0x8C; // 十六进制数 var_dump($x); echo "
"; $x = 047; // 八进制数 var_dump($x);
浮点数是有小数点或指数形式的数字
$x = 10.365; var_dump($x); echo "
"; $x = 2.4e3; var_dump($x); echo "
"; $x = 8E-5; var_dump($x);
$x=true; $y=false;
在一个变量中存储多个值
分为一维数组和多维数组,认识即可,不要深究,后面会专门讲
$cars=array("Volvo","BMW","SAAB"); $_cars=["Volvo","BMW","SAAB"]; var_dump($cars); var_dump($_cars);
需要用到类和封装的知识
等学到类的时候再讲
特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值
注意:可以通过设置变量值为 NULL 来清空变量数据
$x="Hello world!"; var_dump($x); $x=null; var_dump($x);
等学到数据库的时候再讲
实战目标:
html简单介绍
复习变量声明和输出
复习注释
了解变量重复赋值
以<<
结束标记必须顶头写,独自占一行,不能有缩进和空格
在结束标记末尾要有分号
EOF可以用任意其它字符代替,开始标记和结束标记相同即可,比如常用大写的EOT、EOD、EOF来表示,但是不只限于那几个(也可以用:JSON、HTML等),只要保证开始标记和结束标记不在正文中出现即可。
位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符.或,来拼接
当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义。
看上面的name已经不是name啦!!!
EOF; echo $a; echo '
'; $a=<<html格式会被解析
你看看a标签显示了没? 你看看br显示了没?
EOF; echo $a; echo '
'; echo <<
注:资料来源于菜鸟教程 www.runoob.com
![[Pasted image 20230922152416.png]]
'; // 换行 echo ($x - $y); // 输出4 echo '
'; // 换行 echo ($x * $y); // 输出60 echo '
'; // 换行 echo ($x / $y); // 输出1.6666666666667 echo '
'; // 换行 echo ($x % $y); // 输出4 echo '
'; // 换行 echo -$x; //整数之间的整除,参数也必须是整数,向下取整 var_dump(intdiv(10, 3)); ?>
![[Pasted image 20230922155033.png]]
![[Pasted image 20230922160114.png]]
![[Pasted image 20230922160145.png]]
"; var_dump($x === $y); echo "
"; var_dump($x != $y); echo "
"; var_dump($x !== $y); echo "
"; $a=50; $b=90; var_dump($a > $b); echo "
"; var_dump($a < $b); ?>
![[Pasted image 20230922160442.png]]
主要体现在优先级:
echo 'true'; } else{ echo 'false'; } echo '----'; // 在表达式中使用and运算符 $bool = true and false; // 显示and运算符的运算结果 echo "and运算符的结果为:"; if($bool){ echo 'true'; } else{ echo '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 (条件) { 条件成立时执行的代码; } else { 条件不成立时执行的代码; }
if (条件) { if条件成立时执行的代码; } elseif (条件) { elseif条件成立时执行的代码; } elseif (条件) { elseif条件成立时执行的代码; } else { 条件不成立时执行的代码; }
注意:break很重要,不要漏掉
case label1: 如果 n=label1,此处代码将执行; break; case label2: 如果 n=label2,此处代码将执行; break; default: 如果 n 既不等于 label1 也不等于 label2,此处代码将执行; } ?>
什么时候适合用switch?
适合条件比较多,并且条件单一固定值匹配时用
让相同的代码块一次又一次地重复运行
用于预先知道脚本需要运行的次数的情况
for (初始值; 条件; 增量) { 要执行的代码(叫循环体); }
参数:
注释:上面的初始值和增量参数可为空,或者有多个表达式(用逗号分隔)。
for ($i=1,$j=0; $i<=5; ) { echo "数字为 " . $i.$j . PHP_EOL; $i++; }
只要指定的条件成立,则循环执行代码块,直到指定的条件不成立
while (条件) { 要执行的代码; }
注意避免死循环
$i=1; while($i<=5) { echo "The number is " . $i . "
"; $i++; }
语句会至少执行一次代码,然后检查条件,只要条件成立,就会重复进行循环
do { 要执行的代码; } while (条件);
$i=1; do { $i++; echo "The number is " . $i . "
"; } while ($i<=5);
for ($i=0; $i < 5; $i++) { if($i == 3){ continue; } echo $i; }
for ($i=0; $i < 5; $i++) { if($i>3){ break; } echo $i; }
for ($i = 0; $i < 3; $i++) { echo "外层循环: " . $i . "
"; for ($j = 0; $j < 5; $j++) { echo "内层循环: " . $j . "
"; if ($j == 2) { break 2; // 跳出两层循环 } } } echo '已跳出全部循环';
$a = 10; while ($a <= 20) { $a++; if($a == 15){ //continue; break; } echo $a.'---'; }
$a = 10; while ($a <= 20) { $a++; if($a == 15){ for ($i=0; $i < 5; $i++) { if($i==3){ break 2; } echo '
'.$i.'
'; } } echo $a.'---'; }
用于遍历数组,等学数组一起讲
数组能够在单个变量中存储多个值,并且可以根据 键 访问其中的 值
$maoshu = array("猫叔1","猫叔2","猫叔3","猫叔4","猫叔5"); $maoshu = ["猫叔1","猫叔2","猫叔3","猫叔4","猫叔5"]; var_dump($maoshu[1]); var_dump($maoshu[5]);
$maoshu2 = []; $maoshu2[3] = '3'; var_dump($maoshu2);
关联数组是使用您分配给数组的指定的键的数组
$age=["maoshu"=>"35","dong"=>"37"]; //或者 $age['maoshu']="35"; $age['dong']="37";
echo count($maoshu);
for($i=0;$i echo $maoshu[$i]; echo "
"; } foreach ($maoshu as $value) { 要执行代码; } foreach ($maoshu as $key => $value) { 要执行代码; }
for可以,while也可以,但最常用的是foreach
多维数组是包含一个或多个数组的数组
$maoshuArr = [ [ "免费课"=>[ "猫叔课", "php", "python" ], "体验课"=>[ "php", "js", "vue" ] ], [ "收费课"=>[ "油猴脚本", "浏览器插件", "666" ] ] ]; print_r( $maoshuArr );
$maoshuArr = [ "test" => [ "免费课"=>[ "猫叔课", "php", "python", ], "体验课"=>[ "php", "js", "vue", ] ], "product" => [ "免费课"=>[ "产品1", "产品2", ], "体验课"=>[ "产品3", "产品4", ] ] ]; print_r( $maoshuArr );
遍历多维数组
foreach ($maoshu as $key => $value) { 要执行代码; foreach ($value as $kk => $vv) { 要执行代码; } }
实战目标:
任务:
循环数组:输出顶部导航栏,输出博客标题和时间
条件语句:如果为第一个导航,则给出突出显示
运算:输出数字的大小从大到小排列
函数是一段可重复使用的代码块,可以将一系列操作封装起来,使代码更加模块化、可维护和可重用,来大大节省我们的开发时间和代码量,提高编程效率。
内置函数有很多,之前学的print_r() count() 就是一个内置函数,
获取当前时间 time(),date(‘Y-m-d H:i:s’)
这节我们主要讲自定义函数
PHP 函数准则:
function functionName() { // 要执行的代码 } //调用 functionName();
function test(){ echo '我的名字是:写代码的猫叔'; } test(); // 获取当前的时间 function nowTime(){ echo date('Y-m-d H:i:s'); } nowTime();
为了给函数添加更多的功能,我们可以添加参数,参数类似变量
function myName($name){ echo "我的名字是:$name"; } myName("猫叔");
// 获取当前的时间 function nowTime($type){ if($type=="time"){ echo date('Y-m-d H:i:s'); } else if($type==