登录  /  注册
博主信息
博文 94
粉丝 0
评论 0
访问量 111258
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
【PHP】PHP数据类型:基本类型(字符串、数值、布尔、数组)、复合类型(数组、对象)
可乐随笔
原创
2118人浏览过

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举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学