变量
PHP中使用变量之前不需要声明变量(PHP4之前需要声明变量),只需为变量赋值即可。
PHP中的变量名称用$和标识符表示。标识符由字母、数字或下面线组成,并且不能以数字开头。另外变量名是区分大小写的。
类型由值决定,命名规范与js一样,只不过前面加上$
实例代码演示
<?php
// !纯php文件,不要加结束标签,除非与html混编
// ! 变量与函数
// 一个页面就是一个应用程序,相当于exe,可以被执行,只不过在服务品上执行
// ? (一). 变量
// 类型由值决定,命名规范与js一样,只不过前面加上$
$username = '张老师';
// 2. 查看
echo $username . '<br>';
// 3. 查看值和类型
var_dump($username);
echo '<br>';
// 4. 可更新
$username = '牛老师';
echo $username . '<hr>';
函数
实例代码演示:
// 1. 声明与js是一样,但是可以限定参数与返回值的类型,和TypeScript类似
function getUsername(string $username): string
{
return 'Hello, ' . $username;
}
// 2. 调用,与js一样
echo getUsername('欧阳老师') . '<br>';
// 3. 参数不足: 默认值
function getTotal(float $price, int $num = 1): float
{
return $price * $num;
}
echo '总金额: ' . getTotal(68.5) . ' 元 <br>';
echo '总金额: ' . getTotal(68.5, 5) . ' 元 <br>';
// 在js中, 有模板字面量,可以使用插值表达式,变量,函数
// 在php中,也有类似的模板,不过有二个限制
// 1. 必须用双引号声明
// 2. 只解析变量
echo "总金额: getTotal(68.5, 5) 元 <br>";
// 声明一个匿名函数/函数表达式
$getTotal = function (float $price, int $num = 1): float {
return $price * $num;
};
// echo "总金额: $getTotal(68.5, 5) 元 <br>";
// 应该告诉模板,这是一个变量,要一个界定标准,边界
echo "总金额: {$getTotal(68.5, 10)} 元 <br>";
$total = $getTotal(68.5, 2);
echo "总金额: {$total} 元 <br>";
// echo "总金额: ${total} 元 <br>";
// 4. 参数过多, js 剩余参数 ...rest
$sum = function (float $a, float $b, float $c): float {
return $a + $b + $c;
};
echo $sum(3, 4, 5), '<br>';
echo $sum(3, 4, 5, 6, 7), '<br>';
$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,8,9);
// 5. 返回值
// return : 默认返回单值
// 返回多值: 数组/对象
$arr = [33, 2, 54, 7, 12, 23, 9];
function getItems(array $arr, $value): array
{
// 在js中, 外部 变量自动穿透到内部,闭包
// 在php回调方法中,使用外部变量,用use进行声明
return array_filter($arr, function ($item) use ($value) {
return $item > $value;
});
}
print_r(getItems($arr, 20));