Correcting teacher:PHPz
Correction status:qualified
Teacher's comments:
<!DOCTYPE html>
<html lang="zh-CN">
<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>PHP与html关系</title>
</head>
<body>
<h1>你好
<span style="color: red;">PHP安装成功</span>
</h1>
<!-- <h1>你好 -->
<!-- <?php ?> PHP的标签 是在服务器执行,浏览器不认识,不解析-->
<!-- <?php -->
<!-- echo '<span style="color: green;">PHP</span>'; -->
<!-- '?> ''-->
<!-- </h1> -->
</body>
</html>
<!DOCTYPE html>
<html lang="zh-CN">
<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>PHP与html关系</title>
</head>
<body>
<h1>你好
<span style="color: red;">PHP安装成功</span>
</h1>
<h1>你好
<?php
echo '<span style="color: green;">PHP文件</span>';
?>
</h1>
<!--
观察源码,发现二者无任何区别,从而得到出以下结论:
1. html中所有元素必须以标签形式出现
2. php做为元素嵌入到html中也要使用标签
3. php与html混编时,必须使用双标签
4. html代码中嵌入php代码,则扩展必须改为php
5. html中的php代码,由服务器安装的php解析器执行
6. php执行结果,最终以文本形式嵌入到html中,与为html一部分
7. 嵌入到html中的php执行结果, 就和普通html代码一样可以被浏览器识别,解析
8. php代码对前端浏览器来说是不可见的,安全的
-->
</body>
</html>
<?php
// 纯php 结束标记“\? \>”不要写
// 一个PHP文件,就是一个应用程序,类似exe 可以被执行,在服务器执行
// 注释两种 单行 和多行
//
/*
*/
// 一、变量
// $ 进行变量声明 区别 js 的let
$username = '小狗';
// echo 是打印 . 是拼接
echo $username . '<hr>';
// var_dump() 查看当前的值 一个中文三个字节
var_dump( $username);
echo '<hr>';
// 变量更新
$username = '小猫';
var_dump( $username). '<br>';
// 二、函数
//
/*
@var 声明
*/
function getUsername(string $username):string{
return 'hello' . $username;
}
echo getUsername('小牛') . '<hr>';
// 参数不足 ,要给默认值,不然报错
function getTotal(float $price ,int $num = 1):float {
return $price * $num;
}
echo '总金额:'.getTotal(45).'元<br>';
// PHP中 模板字面量 用双引号 声明 双引号中的变量可以解析
echo "总金额:getTotal(45) 元 </br> ";
// getTotal(45) 元 不是变量 是函数
// function (float $price ,int $num = 1) 匿名函数
// 函数表达式 用一个变量来保存函 数的声明,调用变量就是调用函数
$getTotal = function (float $price ,int $num = 1):float {
return $price * $num;
};
// php中匿名函数也叫闭包 闭包不能转字符串,不能这样用 需要用大括号 { } 定界符 作为变量定界符 来标记范围
// echo "总金额: $getTotal(45) 元 </br> ";
echo "总金额: {$getTotal(45) }元 </br> ";
// 参数过多 。。。rest
$sum = function (float $a ,float $b ,float $c):float{
return $a + $b + $c;
};
echo $sum(4,5,6,7,8) . '<br>';
$sum1 = function (...$args){
var_dump($args);
// return $a + $b + $c;
};
echo $sum1(4,5,6,7,8) . '<br>';
$sum2 = function (...$args){
return array_sum($args);
// return $a + $b + $c;
};
echo $sum2(4,5,6,7,8) . '<br>';
$sum3 = function (...$args){
return array_sum($args);
// return $a + $b + $c;
};
$param = [1,2,3,4,5,6,7];
echo $sum2(...$param) . '<br>';
// 返回值
// 默认为单值
// 返回多个值 数组 或对象
$arr = [11,22,5,7,13,19,60,2,85];
// 任务:返回大于 或等于某个数的成员以数组方式返回
function getTtems($arr,$value):array {
// array_filter():数组过滤器,第一个参数是数组,第二个数组是闭包,传入过滤的方
return array_filter($arr , function ($item) use ($value ){
return $item >$value;
});
};
echo '<pre>' . print_r(getTtems($arr,30),true) .'</pre>';
// 数组换位字符串
echo '[' . implode(',' , getTtems($arr,30) ). ']';
/**
* (一)变量
* 1. $
* 2. 不用声明,直接赋值,直接用
* 3. 使用模板(双引号)的时候,用变量定界符{$xxx}
*
* (二)函数
* 1. function
* 2. funcName()
* 3. 参数不足: 默认值
* 4. 参数过多: ...rest
* 5. 返回: 单值, 多值:数组/对象
*/
<?php
// 命名空间 :想象为一个目录
namespace _0808;
use PDO;
// 如果查看 和保存运行结果
// 1、echo 字符串 输出
echo '<h2 style = "color:red">晚上好</h2>';
echo 123;
echo '</br>';
echo true;
echo '<br>';
echo false;
echo '<br>';
// implode 默认字符串输出
echo 'hello' . implode(',' , [1,2,3]) .'<hr>';
//2、var_dump() 函数,查看类型,可以查看多个变量 只用于 调试开发环境不能用于生产环境
var_dump(10,'php',[1,2,3,],true);
echo '<hr>';
// 3、格式化
$arr = [ 'red' ,'green','blue'];
// 人性化打印 打印、返回
print_r($arr);
// 增加 true 不打印只返回
print_r($arr,true);
// 打印、返回
echo print_r($arr,true);
// pre 标签格式化打印
echo '<pre>' . print_r($arr,true) . '</pre>';
// printf( 模板,数据) '<pre> %s </pre> 模板 返回打印
// $ s :表示字符串 %d :数值 直接返回打印
printf( '<pre> %s </pre>' , print_r($arr , true) );
// 只返回不打印
sprintf( '<pre> %s </pre>' , print_r($arr , true) );
// printf() :打印 返回
// sprintf( ) 只返回不打印
// vprintf( ) 数组参数 打印返回
// vsprintf( ) 数组参数,只返回
$item = ['电脑', 8000,1];
printf( '品名:%s , 单价:%d, 数量 :%d<br>',$item[0],$item[1],$item[2]) ;
// vprintf( ) 使用一个数组,表示数据列表 打印、返回
vprintf( '品名:%s , 单价:%d, 数量 :%d',$item) ;
// vsprintf( ) 使用一个数组,表示数据列表 只返回不打印
vsprintf( '品名:%s , 单价:%d, 数量 :%d',$item) ;
$params1 = ['mysql','localhost','bittel','3306','utf-8'];
echo '<br>';
// 'mysql:host = localhost;dbname=bittel;port =3306,charset=utf-8';
$dsn1 = printf('mysql:host =%s;dbname=%s;port =%s,charset=%s',$params1[0],$params1[1],$params1[2],$params1[3],$params1[4]);
echo '<br>';
// $dsn = vsprintf('%s:host =%s;dbname=%s;port =%s,charset=%s',$params1);
$dsn = vsprintf('%s:host=%s;dbname=%s;port=%s;charset=%s', $params1);
echo $dsn;
new \PDO($dsn,'root','root');
if($db){
echo '连接成功';
}