变量与函数

变量

声明

类型由值决定,命名规范与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
  • 函数默认单值返回,返回多值请用数组或对象

更多相关文章

  1. Android编译系统详解(三)——编译流程详解
  2. android之view获取getWidth()和getHeight()
  3. 按着步骤来,学习Android(安卓)NDK入门很简单
  4. android switch模块 (耳机检测)
  5. Android(安卓)数据Parcel序列化过程源码分析
  6. Android(安卓)Studio 调试过程中快捷查看断点处变量值(Ctrl+Shift
  7. 年末呼声最高的 Android(安卓)中高级面试笔记,如今“它”来了
  8. Android(安卓)反射获取私有方法,成员变量
  9. Android(安卓)图片资源的异步加载2

随机推荐

  1. android中版本webView中js不执行问题
  2. 异步任务加载网络数据——AsyncTask使用
  3. android studio中常用快捷键
  4. android 显示子系统零碎理解
  5. Service启动Actvity
  6. Eclipse下使用Android(安卓)Design Suppo
  7. 【Android笔记 七】Android(安卓)Sensor
  8. Android(安卓)NDK支持STL的一些注意事项
  9. 浅谈Android中的BaseAdpater
  10. AppCode iOS 应用开发 开发环境