PHP第一天
php与html的关系
1.html所有的元素必须以标签形式出现
2.php作为元素嵌入到html中也要使用标签
3.php与html代码混编时,必须使用双标签
4.html代码中嵌入php代码。扩展名改为php
5.html中php代码由php.exe执行
6.php执行结果最终以文本形式嵌入到html中,成为html一部分
7.嵌入到html中的php执行结果,和普通的html代码一样开源被浏览器识别解析。
8.php代码对前端浏览器来说时不可见的,安全的
<?php
//如果是纯php文件,不要加结束标签,除非与html混编
1.变量
1.声明
//类型由值决定,命名规范与js一直,但前面需要加$
$username = '内容'
2.查看
echo $username //内容
3.查看值和类型
var_dump($username)
4.更新
$username = '内容2'
echo $username //内容2
函数
1.声明与js一样,但是可以限定参数与返回值的类型,和TypSceript类似
function getUsername(string $username): string
{
return 'Hello, ' . $username;
}
echo getUsername('欧阳老师') . '<br>';
function getTotal(float $price, int $num = 1): float
{
return $price * $num;
}
echo '总金额: ' . getTotal(68.5) . ' 元 <br>';
echo '总金额: ' . getTotal(68.5, 5) . ' 元 <br>';
$getTotal = function (float $price, int $num = 1): float {
return $price * $num;
};
模板字面量调用
echo "总金额: {$getTotal(68.5, 5)} 元 111<br>";
不使用剩余参数,里面多余的形参不参与运算
$sum = function (float $a, float $b, float $c): float {
return $a + $b + $c;
};
echo $sum(3, 4, 5), '<br>'; //12
echo $sum(3, 4, 5, 6, 7), '<br>'; //12
使用剩余参数
$sum = function (...$args) {
// print_r($args);
// [1,2,3].reduce(....)
return array_reduce($args, function ($acc, $cur) {
return $acc + $cur;
}, 0);
};
echo $sum(3, 4, 5, 6, 7), '<br>';
array_reduce()方法理解:
1.数组有几个数就调用几次
2.$acc第一次为默认值‘0’
执行流程为,读取数组,调用函数,返回为$acc + $cur;
第一次执行,0+3 =3,第二次执行,3+5= 8
array_reduce($args, function ($acc, $cur) {
return $acc + $cur;
}, 0);
echo $sum(3,5), '<br>'; //8
$arr = [33, 2, 54, 7, 12, 23, 9];
求数组中大于$value的数
function getItems(array $arr, $value)
{
// 在js中, 外部 变量自动穿透到内部,闭包
// 在php回调方法中,使用外部变量,用use进行声明
return array_filter($arr, function ($item) use ($value) {
return $item > $value;
});
}
print_r(getItems($arr, 20));
array_filter — 使用回调函数过滤数组的元素
总结:
1.变量不用声明,直接用。
2.使用双引号声明模板字符串,可嵌入变量。
3.函数先声明在调用。
4.函数参数不足:默认值
5.函数参数过多:剩余参数...rest
6.函数默认单值返回,返回多值请用数组或对象
查看与保存运行结果
1.echo
echo字符串,如果不是就转为字符串
echo用来输出计算结果的字符串表示,
数组转为字符串:implode('连接符',[数组])
2.var_dump
var_dump,查询值的类型,支持多个变量查询
var_dump(10, 'php', [1, 2, 3], true);
int(10) string(3) "php" array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } bool(true)
//不能用在生产环境
3.格式化打印
1.数组格式化
print_r(数组),只显示值
printf(模板,模板中的变量),%s字符串占位符,%d整数型,%f小数。
直接打印
printf('<pre>%s</pre>', print_r($arr, true));
只返回,不打印
sprintf('<pre>%s</pre>', print_r($arr,true));
$arr = ['手机', 5000, 3];
vprintf('品名: %s, 单价: %.2f 元, 数量: %d 部<br>', $arr);
// 它也有一个只返回不打印的版本
echo vsprintf('品名: %s, 单价: %.2f 元, 数量: %d 部<br>', $arr);
值传递, 引用传递
$username = '猪老师';
// ! 1. 值传递
这样是将$username;赋值给了$myname
$myname = $username;
// echo $myname; //猪老师
$myname = '牛老师';
// echo $myname; //牛老师
printf('$username = %s | $myname = %s <br>', $username, $myname);
echo $myname === $username ? '相等' : '不相等', '<hr>'; //不相等
// &
$yourname = &$username;
$yourname = '牛老师';
printf('$username = %s | $yourname = %s <br>', $username, $yourname);
echo $yourname === $username ? '相等' : '不相等', '<hr>';//相等
// 其实引用就是给原变量起个别名,并没有创建新变量
版权声明:
作者:zhuim521
链接:https://zhuimwl.com/123.html
来源:追梦博客
文章版权归作者所有,未经允许请勿转载。

共有 0 条评论