Blogger Information
Blog 30
fans 0
comment 0
visits 13835
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP变量与函数的声明
天宁
Original
405 people have browsed it

变量与函数

变量

声明

类型由值决定,命名规范与js一样,只不过前面加上 $

  1. $username = '朱老师';
查看
  1. `echo $username . '<br>';`
查看值和类型
  1. var_dump($username);
  2. echo '<br>';
可更新
  1. $username = '牛老师';
  2. echo $username . '<hr>';

函数

声明与js是一样,但是可以限定参数与返回值类型,和TypeScript类似
  1. function getUsername(string $username): string
  2. {
  3. return 'Hello, ' . $username;
  4. }
调用,与js一样
  1. `echo getUsername('欧阳老师') . '<br>';`
参数不足:默认值
  1. function getTotal(float $price, int $num = 1): float
  2. {
  3. return $price * $num;
  4. }
  5. echo '总金额: ' . getTotal(68.5) . ' 元 <br>';
  6. echo '总金额: ' . getTotal(68.5, 5) . ' 元 <br>';
PHP中类似js模板字面量

在js中, 有模板字面量,可以使用插值表达式,变量,函数
在php中,也有类似的模板,不过有二个限制

  1. 必须用双引号声明
  2. 只解析变量,不支持函数(用匿名函数的方式或者把函数的结果赋给变量来支持,)
  1. // 声明一个匿名函数/函数表达式
  2. $getTotal = function (float $price, int $num = 1): float {
  3. return $price * $num;
  4. };
  5. // 应该告诉模板,这是一个变量,要一个界定标准,边界,用{}包含来界定
  6. echo "总金额: {$getTotal(68.5, 10)} 元 <br>";
参数过多,js 剩余参数 …rest
  1. $sum = function (...$args) {
  2. // print_r($args);
  3. // [1,2,3].reduce(....)
  4. return array_reduce($args, function ($acc, $cur) {
  5. return $acc + $cur;
  6. }, 0);
  7. };
  8. echo $sum(3, 4, 5, 6, 7);
返回值

renturn : 默认返回单值

返回多值:数组/对象

  1. $arr = [33, 2, 54, 7, 12, 23, 9];
  2. function getItems(array $arr, $value): array
  3. {
  4. // 在js中, 外部 变量自动穿透到内部,闭包
  5. // 在php回调方法中,使用外部变量,用use进行声明
  6. return array_filter($arr, function ($item) use ($value) {
  7. return $item > $value;
  8. });
  9. };
  10. print_r(getItems($arr, 20));

总结

  • 变量不用声明,直接用
  • 使用双号号声明字符串模板中可嵌入变量
  • 函数先声明,再调用
  • 函数参数不足: 默认值
  • 函数参数过多: 剩余参数…rest
  • 函数默认单值返回,返回多值请用数组或对象
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post