Blogger Information
Blog 94
fans 0
comment 0
visits 92644
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
【PHP】PHP数据类型:基本类型(字符串、数值、布尔、数组)、复合类型(数组、对象)
可乐随笔
Original
1930 people have browsed it

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);

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