博客列表 >【PHP】PHP数据类型:基本类型(字符串、数值、布尔、数组)、复合类型(数组、对象)

【PHP】PHP数据类型:基本类型(字符串、数值、布尔、数组)、复合类型(数组、对象)

可乐随笔
可乐随笔原创
2022年12月12日 23:20:001926浏览

PHP数据类型

打印函数

  1. Echo:打印值,用于单值
  2. Print_r():人类可读方式打印,用于数组
  3. Var_dump(): 打印值的结构与类型,用于对象
  4. Var_export(): 变量字符串表示(源代码中的声明语句)

1. (一)基本:字符串,数值,布尔,数组

1.1 字符串,引号

单引号:适合无变量,无转义字符
双引号:适合有变量,有转义字符

  1. $data = 'php.cn';
  2. $data = 123;
  3. $data = true; //输出 1
  4. $data = false; // 输出 空
  5. // echo $data,'<br>';
  6. // print_r($data);
  7. // var_dump($data);
  8. // var_export($data); //输出源代码(原始声明)
  9. // 字符串,引号
  10. // 单引号:适合无变量,无转义字符
  11. // 双引号:适合有变量,有转义字符
  12. $title = '文章标题';
  13. echo '<a href="#">$title</a>', '<br>';
  14. echo "<a href=\"#\">$title</a>", '<br>';
  15. echo "<a href='#'>$title</a>", '<br>';
  16. // 有变量和转义字符,要用双引号,要注意引号要成对出现
  17. // JS:多行大量字符串,使用模板字面量 : 反引号 ``
  18. // PHP 有两个方案,对应着单引号 和 双引号
  19. // 1. nowdoc, 单引号
  20. $title = '静夜思';
  21. $str = <<< 'DOC'
  22. <h3>$title</h3>
  23. 床前明月光,\n
  24. 疑是地上霜。\n
  25. 举头望明月,\n
  26. 低头思故乡。\n
  27. DOC;
  28. echo $str; //单引号不能解决 转义字符,\n 不起作用。
  29. // 在每行前加上<br>,页面中强制换行
  30. echo nl2br($str) . '<hr>';
  31. // 2.heredoc, 双引号
  32. $title = '静夜思';
  33. // "ABC" 中的双引号,可以不写,是默认的
  34. $str = <<< "ABC"
  35. <h3>$title</h3>
  36. 床前明月光,\n
  37. 疑是地上霜。\n
  38. 举头望明月,\n
  39. 低头思故乡。\n
  40. ABC;
  41. // echo $str; //源码中换行了,但页面没有换行,使用 nl2br 换行
  42. echo nl2br($str) . '<hr>';

1.2 (二)复合:数组,对象

数组:根据键名,索引数组,关联数据

索引数组

13909511100

  1. $array = [
  2. '0' => '老马',
  3. '1' => 'nx77@qq.com'
  4. ];
  5. // 索引可以省略不写
  6. $array = [
  7. '老马',
  8. 'nx77@qq.com'
  9. ];

关联数组:索引语义化

  1. $array = [
  2. 'name' => '老马',
  3. 'email' => 'nx77@qq.com',
  4. 'phone' => '13909511100'
  5. ];
  6. print_r($array['name']);

格式化输出字符串

php模板化输出
  1. // 以源码方式,一行一个输出:第一步返回不直接输出,第二步套<pre></pre>
  2. $str = print_r($array, true);
  3. // echo '<pre>' . $str . '</pre>'; //方法一
  4. // 双引号,推荐用下面的这种方法
  5. // echo "<pre> {$str}</pre>"; //方法二
  6. // printf:php模板化输出:方法三,更优雅
  7. // %s: string, %d:integer, %f:float;
  8. printf("<pre>%s</pre>", $str);
  9. $array = [
  10. '老马',
  11. 'nx77@qq.com',
  12. '13909511100'
  13. ];
for输出
  1. $res = '';
  2. for ($i = 0; $i < count($array); $i++) {
  3. $res = $res . "[ $array[$i] ]";
  4. }
  5. echo $res, '<hr>';
JS arr.reduce()归并
  1. $res = array_reduce($array, function ($curr, $prev) {
  2. return $curr . "[ $prev ]";
  3. });
  4. echo $res, '<hr>';
关联数组
  1. $data = ['cid' => 1, 'cname' => '新闻360', 'curl' => 'news.php'];
  2. print_r($data);
  3. printf("<pre>%s</pre><br>", print_r($data, true));
解构赋值
  1. // php:List(),不是函数,因为用到了 =号左边
  2. // 解构语法: 模板 = 值
  3. ['cid' => $cid, 'cname' => $cname, 'curl' => $curl] = $data;
  4. printf('cid=%d, cname=%s, curl=%s<br>', $cid, $cname, $curl);
关联数组快速解构
  1. extract($data);
  2. printf('id=%d, name=%s<br>', $cid, $cname);
索引数组解构
  1. $data = [1, '新闻', 'news.php'];
  2. list($cid, $cname, $curl) = $data;
  3. printf('cid=%d, cname=%s, curl=%s<br>', $cid, $cname, $curl);

2. 对象

3. 资源类型

  1. $fp = fopen('../1123/outline.md','r');
  2. var_dump($fp);
  3. // php没有 undefined, 有 null,空或无
  4. @var_dump($a);
  5. @var_dump(is_null($a));
  6. // @ 屏蔽掉不致命错误提示

4. 回调

  1. function hello (string $uname, callable $fn): string
  2. {
  3. return 'hello, ' . $fn($uname);
  4. }
  5. $fn = function($uname){
  6. return $uname;
  7. };
  8. //调用

echo hello(‘老马’,$fn);

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议