批改状态:合格
老师批语:
字符串的插值
<?php$name = "华硕电脑";$price = 5199;echo "品名:".$name."<br>价格:".$price."元<br>";// \n 换行 \r 回车 \t tab \\ \$ \'// 注意:单引号只能识别2个转义字符 \' , \\// 单双引号区别:字符转移、变量解析、运行速度。// 注意:这里的转义字符\n 在HTML中就是一个空格// nl2br()他会在\n前面自动插入一个<br>$template = nl2br("品名:{$name}\n价格:{$price}元<br>");echo $template;/*品名:华硕电脑价格:5199元品名:华硕电脑价格:5199元*/// 定界符-----------------------------//Heredoc 方式声明字符串$url = " http://zhang.com/0427/demo.php";$str = <<< EOF我的url:{$url}EOF;echo $str3; // http://zhang.com/0427/demo.php// heredoc: 双引号字符串替代语法// 比较适合输出大量的多行内部存在变量的html代码echo <<< SHOW<table border="1" width='200'><tr><th>品名</th><th>价格</th></tr><tr><td>{$name}</td><td>{$price}</td></tr></table>SHOW;// SHOW: 必须要写在第一列最开头顶格,必须要与起始的名称一致// nowdoc:单引号替代语法echo <<< 'EOF'<table border="1" width='200'><tr><th>品名</th><th>价格</th></tr><tr><td>手机</td><td>1599</td></tr></table>EOF;// nowdoc:适合大段的多行的字符串字面量的输出?>
总结:
运算符是指通过一个或多个表达式来产生另外一个值的某些符号,如“+”、“%”、“.”等都是运算符。


<?php$a = 10;$b = 2;echo $a+$b; // 12 加echo $a-$b; // 8 减echo $a*$b; // 20 乘echo $a/$b; // 5 除echo $a%4; // 2 求余echo -6%4; // -2// 判断今年是否为闰年 (年份能被4整除,但不能被100整除,或者能被400整除)$year = date("Y");if($year%4==0&&$year%100!=0||$year%400==0){echo "{$year}年是闰年";}else{echo "{$year}年是平年";}// 生成一定范围内的随机数 0~100echo mt_rand()%101;echo mt_rand(0,100);// 自增自减运算符$a = 10;echo $a++,"---",$a; // 10---11 先返回输出完在自增echo ++$a,"---",$a; // 12---12 先自增完在返回输出// 自减同理echo $a--,"---",$a; // 12---11echo --$a,"---",$a; // 10---10// 幂运算printf("2的4次方=%d<br>",2**4); // 2的4次方=16?>
<?php// 英文的 . 和 , 来连接字符串echo "a"."b"."c"; //abc$str1 = "Hello";$str2 = "World";echo $str1," ",$str2; //Hello World$newStr = $str1,$str2;echo $newStr; //提示语法错误因为 “,” 是echo语句特有的$newStr = $str1." ".$str2;echo $newStr; //Hello World?>

<?php$a = 10;$b = 3;var_dump($a>$b); // bool(true)var_dump($a=2); // int(2) = 赋值,将等号右边赋值给左边var_dump($a=="2"); // bool(true) == 值等于,类型不同会自动转换var_dump($a==="2") // bool(false) === 全等于,必须类型和值完全相同// strpos()查找指定字符串出现的位置$str = "abcdefg";$pos = strpos($str,'h');// false 0 true 1echo $pos===false? "未查找到指定字符!": "查找成功!";?>
<?php// x && y 与 如果 x 和 y 都为 true,则返回 true (&&===and)var_dump(3>2&&5>1); // bool(true)// 短路求值,第一个为假,第二个&&3>2永不执行var_dump(2>3&&3>2); // bool(false)var_dump(3>2&&2>3); // bool(false)// x || y 或 如果 x 和 y 至少有一个为 true,则返回 true (||===or)var_dump(3>2||2>3); // bool(true)// ! x 非 如果 x 不为 true,则返回 truevar_dump(!(3>2)); // bool(false)$username = "admin";if(isset($username)&&$username === "admin"){echo "欢迎管理员".$username;}else{echo "请登录";}unset($username); // 退出登录echo !empty($username)?"欢迎登录成功!":"请登录";?>
<?php// x = y x = y 左操作数被设置为右侧表达式的值$a = 18;// x += y x = x + y 加$a += 2; // $a = $a + 2;// x -= y x = x - y 减$a -= 2; // $a = $a - 2;// x *= y x = x * y 乘$a *= 2; // $a = $a * 2;// x /= y x = x / y 除$a /= 2; // $a = $a / 2;// x %= y x = x % y 模(除法的余数)$a %= 2; // $a = $a % 2;// a .= b a = a . b 连接两个字符串$a .= 2; // $a = $a.2;$str = "zhang";$str .= ".com"; // zhang.comob_clean();$list = "<ul>";for ($i=1; $i < 5; $i++) {$list .= sprintf("<li>item%d</li>",$i);}$list .= "</ul>";echo $list;/*<ul><li>item1</li><li>item2</li><li>item3</li><li>item4</li></ul>*/?>
抑制错误输出,同过@符号加到会产生错误的表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
<?php$var = 123;@settype($var,"undefined"); // php 中没有undefined类型,不加上@肯定会报错echo gettype($var);echo var_export($var);?>
<?php// (expr1) ? (expr2) : (expr3)// 如果exp1为真,执行?之后的exp2,否则执行:之后的exp3$a = 12;$b = 45;$c = $a>$b?1:0;echo '$c='.$c ;// 检测页码 默认第一页// $page = isset($_GET['page'])?$_GET['page']:1;// $page = @$_GET['page']?$_GET['page']:1;// null 合并运算符? 给null变量一个默认值$page = $_GET['page']??1;echo "当前是第".$page."页";// 太空舱运算符--------$a = 15;$b = 25;// if($a>$b){// echo 1;// }elseif($a<$b){// echo -1;// }else{// echo 0;// }// a<b -1 a>b 1 a=b 0echo $a <=> $b;?>
PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch。替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,endwhile;,endfor;,endforeach; 以及 endswitch;
详情请查看此处
判断条件是否满足从而执行相应的语句代码
if else语句 单分支
<?php// if(exp) 执行一句代码if(exp){// 代码段;}// if...elseif(exp){// exp为true时执行代码段;}else{// exp为false时执行代码段;}// if...elseif...elseif(exp1){// exp1为true时执行代码段;}else if(exp2){// exp2为true时执行代码段;}elseif(exp3){// exp3为true时执行代码段;}else{// 以上exp都为false时会执行到此;}// if嵌套的形式if(exp){// 代码段;}else{// 代码段;if(exp){if(exp){// 代码段;}else{// 代码段;}}}// ------------------// 模板语法:为了提高混合代码(HTML php)的整洁性if(boolean):echo "string";else:echo "string";endif;<? if(true): ?><?= "<p>早上好</p>" ?><? else: ?><?= "<p>晚上好</p>" ?><? endif ?>?>
switch语句 多分支
<?phpswitch(exp){case 值1:// 代码段;break;case 值2:// 代码段;break;...default:// 代码段;}// 当exp与case的值相同时,执行代码段// 比对的时候是松散比对即 == 如 1(int) == "1"(str)$d = date("w");switch ($d):case '1':echo "今天是星期一";break;case '2':echo "今天是星期二";break;case '3':echo "今天是星期三";break;case '4':echo "今天是星期四";break;case '5':echo "今天是星期五";break;default:echo "今天是周末啦!";break;endswitch;?>
重复的事情或者有规律的事情要想到用循环
for循环语句
<?phpfor(exp1;exp2;exp3){# code...}// exp1相当于初始化赋值,会无条件执行第一个表达式// exp2在每次循环开始前求值,看exp2是否为true,如果为true执行循环体,否则for循环结束// exp3做求值操作(增量或减量操作)// true时执行顺序:exp1>-exp2>-代码段>-exp3>-exp2>-代码段>-exp3...for($i=1;$i<=10;$i++){echo $i."<br>";}// 初始值;条件;步长for ($i=1,$j=10; $i < $j ; $i++,$j--) {echo $i,"----",$j,"<br>";}/*1----102----93----84----75----6*/?>
while循环语句
<?phpwhile(exp){// 循环体;}$i = 1;while ( $i<= 10) {echo $i."<br>";$i++;}$cities = ['安徽','上海',"武汉","北京","南京","合肥"];echo current($cities);next($cities);echo current($cities);next($cities);echo current($cities);next($cities);echo current($cities);reset($cities);echo current($cities);// current() 返回数组当前指针指向的值,到末端返回falsewhile ($i=current($cities)) {echo $i."<br>";next($cities); // 往下移动指针}var_export(current($cities)); // false 已移动到末尾// 将数组的指针回位reset($cities);?>
do…while循环语句
<?phpdo{循环体;}while(exp);// 无条件的执行一次循环体,接着再来判断条件是否为true,为true的话继续执行循环体$i = 1;do{echo $i."<br>";}while ($i<=10)?>$cities = ['安徽','上海',"武汉","北京","南京","合肥"];$i = 0;do{echo $cities[$i];$i++;}while($i<count($cities));
goto (跳转指定)
跳转到指定位置
continue(结束本次)
代表跳过当次循环执行下次循环,可应用于for语句、while语句和do…while语句
break (终止循环)
可以通过break结束for语句、while语句和do…while语句死循环。
<?php// continue 只是结束本次的循环程序,继续下一次// 只输出十以内的偶数for ($i=1; $i < 10; $i++) {if($i%2!=0){continue;}echo $i."<br>";}// 看下面这个条件显然是一个死循环$i = 0;while (true) {// 当$i变量的值大于4的时候,我们就终止循环if($i>4){break;}echo $i."<br>";$i++;}?>
include和require引入外部文件的区别?
User.php
class User{public $name;public function __construct($name){$this->name = $name;}}$obj = new User('zhang');
Product.php (include)
include __DIR__.'./User.php';echo $obj->name;// 注意:include 引入的文件,一旦出错,脚本还会继续执行echo "脚本继续运行"; // 脚本继续运行
Product.php 推荐(require)
// include __DIR__.'./User.php';// 多次引入的话会报错,类不能重复定义require __DIR__.'./User.php';echo $obj->name;// 注意:require 引入的文件,一旦出错,就会终止脚本运行echo "脚本继续运行"; // 不会被输出
include_once和require_once的主要区别就是,当重复引入一段代码时,他们只会引入一次,从而避免变量函数多次声明。
Product.php (include_once、require_once)
// 这里虽然多次引入,但不会报错,他们会判断是否重复引入include_once __DIR__.'./User.php';require_once __DIR__.'./User.php';echo $obj->name;
实际练习:
config.php 数据库链接配置文件
<?phpreturn ['type'=>'mysql','host'=>'localhost','dbname'=>'sys','username'=>'root','password'=>'root']?>
connect.php
$config = require './config.php';echo "<pre>";print_r($config);// 将键名当作变量名,值作为变量的值。 对每个键/值对都会在当前的符号表中建立变量extract($config);// pdo$pdo = new PDO("$type:host=$host;dbname=$dbname;",$username,$password);echo $pdo?"数据库连接成功":"连接失败,请检查配置项……";
函数演示:
<?php// mt_rand ( int $min , int $max ) : intecho mt_rand(1,100);// date ( string $format , int $timestamp = ? ) : string$today = date("Y-m-d H:i:s");echo $today; // 2021-04-28 10:36:28//----------------------------------------// next()一般和current()配套使用$cities = ['安徽','上海',"武汉","北京","南京","合肥"];echo current($cities); // 安徽next($cities);echo current($cities); // 上海next($cities);echo current($cities); // 武汉next($cities);// 归位reset($cities);echo current($cities); // 安徽//----------------------------------------// extract ( array &$array , int $flags = EXTR_OVERWRITE , string $prefix = "" ) : int// 函数会将键名当作变量名,值作为变量的值。 对每个键/值对都会在当前的符号表中建立变量$arr = ['name'=>'zhang','gender'=>"男",'age'=>18];print_r($arr);extract($arr);echo "姓名:{$name} 性别:{$gender} 年龄:{$age}";// 姓名:zhang 性别:男 年龄:18?>
<?php$item = "";$tr="";for ($i=1; $i <= 3; $i++):$td="";for ($j=1; $j <= 3; $j++):$r = mt_rand(0,255);$g = mt_rand(0,255);$b = mt_rand(0,255);$td .= <<< TD<td style="background-color:rgb({$r},{$g},{$g})"></td>TD;endfor;$tr .= <<< TR<tr>{$td}</tr>TR;endfor;echo <<< TABLE<table border="1" cellspacing="0" width="150" height="150">{$tr}</table>TABLE;?>

<?phpif(!empty($_POST)){$a = $_POST["a"];$b = $_POST["b"];$operator = $_POST["operator"];$result = "";if ($operator == '+'):$result = $a + $b;elseif ($operator == '-'):$result = $a - $b;elseif ($operator == '*'):$result = $a * $b;elseif ($operator == '/'):@$result = $a / $b;endif;$info = ($operator=="/"&&$b==0)?"除数不能为0":"计算结果:{$a}{$operator}{$b}=$result";}else{$a = "";$b = "";$operator = "";$result = "";$info = "请输入要计算的数字";}?><!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>计算器</title><style>.content{width: 800px;margin: 20px auto;border: 1px solid black;padding: 30px;text-align: center;background-color: aliceblue;}.content input{height: 25px;padding: 10px;font-size: 16px;}.content input[type="submit"]{height: 49px;width: 49px;}.content select{height: 49px;width: 49px;font-size: 18px;}</style></head><body><div class="content"><h1>简单的计算器</h1><form action="calculator.php" method="POST"><input type="number" name="a" value="<?= $a; ?>" required/><select name="operator"><option value="+" <?= $operator== "+"?"selected":"" ?> >+</option><option value="-" <?= $operator== "-"?"selected":"" ?> >-</option><option value="*" <?= $operator == "*"?"selected":"" ?> >*</option><option value="/" <?= $operator == "/"?"selected":"" ?> >/</option></select><input type="number" name="b" value="<?php echo $b; ?>" required/><input type="submit" value="="/><input name="result" type="text" value="<?php echo $result; ?>"/><p><?= $info ?></p></form></div></body></html>


结束!!!
附:博客链接
【php基础入门】PHP环境搭建与初识php代码书写及演示PHP和JS中遍历数组的区别等知识点学习笔记
【php基础入门】细说php的变量以及常量的知识点详解
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号