1. 代码演绎PHP的8种变量类型与常量。2.变量作用

编辑: admin 分类: 电脑知识 发布时间: 2023-06-14 来源:互联网
1. 代码演绎PHP的8种变量类型与常量。2.变量作用域与PHP流程控制。1. 代码演绎PHP的8种变量类型与常量。





  1. <?php
  2. //!数据类型 4种标准类型 整型 浮点型 字符串 布尔
  3. echo '<pre>';
  4. $price=4800;
  5. echo $price;
  6. var_dump($price);//int(4800)
  7. $price=89.99;
  8. var_dump($price);//float(89.99)
  9. $flag=true;
  10. var_dump($flag);//bool(true)
  11. $username='admin';
  12. var_dump($username);//string(5) "admin"
  13. //php变量是大小写敏感 php函数不大小写敏感
  14. /**
  15. * echo 输出一个或者多个字符串
  16. * var_dump()打印值的结构、类型、值,用于任何类型,多变量
  17. * print_r() 打印人类可读的变量信息 用于数组 第二个参数为 true,print_r() 将返回信息,而不是打印它,返回 string
  18. * var_export()输出或返回变量的可解析字符串表示
  19. */
  20. $arr = ['php', 'java', 'nodejs'];
  21. $return = print_R($arr, true);
  22. echo $return;
  23. var_dump($arr);
  24. // var_dump([1, 2, 3, 4]);
  25. var_export($arr);
  26. //! 2 数组 对象
  27. // 数组 根据键名,可分为索引数组,关联数组
  28. // 索引数组 int
  29. echo '<pre>';
  30. $data = [1, 2, 3, 4, 44, 33];
  31. $data = ['前端', '后端', '数据库', '运维'];
  32. var_dump($data);
  33. // 关联数组 string
  34. $navs = ['id' => 1, 'name' => '前端', 'url' => 'front-end.php'];
  35. var_dump($navs);
  36. $navs = [
  37. 0 => ['id' => 1, 'name' => '前端', 'url' => 'front-end.php'],
  38. 1 => ['id' => 2, 'name' => '后端', 'url' => 'back-end.php'],
  39. 2 => ['id' => 3, 'name' => '数据库', 'url' => 'data.php'],
  40. 3 => ['id' => 4, 'name' => '运维', 'url' => 'operation.php']
  41. ];
  42. var_dump($navs);
  43. // ! 数组遍历 for
  44. $nav = '';
  45. for ($i = 0; $i < count($navs); $i++) {
  46. $nav .= "<a href='{$navs[$i]['url']}' style='padding: 0 15px' >{$navs[$i]['name']}</a>";//需要加花括号才能解析
  47. }
  48. echo $nav;
  49. ob_clean();
  50. echo '<pre>';
  51. //! foreach
  52. $nav = '';
  53. foreach ($navs as $v) {
  54. // var_dump($k, $v);
  55. $nav .= "<a href='{$v['url']}' style='padding: 0 15px' >{$v['name']}</a>";
  56. }
  57. echo $nav;
  58. // ! list() 把数组中的值赋给一组变量 不是真正的函数,而是语言结构
  59. $names = array('西门', '灭绝', '欧阳', '天蓬');
  60. $num = count($names);//返回数组的数量
  61. list($a, $b, $c, $d) = $names;
  62. echo "{$a},{$b},{$c},{$d}是PHP中文网的{$num}位老师";
  63. // ! extract() 从数组中将变量导入到当前的符号表 此函数会将键名当作变量名,值作为变量的值。 不要对不可信的数据使用 extract(),类似用户输入 (例如 $_GET、$_FILES)。
  64. $final = ['id' => 1, 'name' => '前端', 'url' => 'front-end.php'];
  65. extract($final);
  66. echo $id, $name, $url;
  67. ?>
  68. <!DOCTYPE html>
  69. <html lang="en">
  70. <head>
  71. <meta charset="UTF-8">
  72. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  73. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  74. <title>Document</title>
  75. </head>
  76. <body>
  77. <form action="test.php" method="post">
  78. <label for="uname">用戶名</label>
  79. <input type="text" name="uname" id="uname">
  80. <label for="pwd">密碼</label>
  81. <input type="password" name="pwd" id="pwd">
  82. <button>提交</button>
  83. </form>
  84. </body>
  85. </html>

对象, resource , null的应用

  1. <?php
  2. ob_clean();
  3. // !對象 对象是类实例化(new)的结果, 类是具有相同属性和行为的一组对象的集合
  4. class NbaPlay
  5. {
  6. public $name;//公开
  7. private $team;//保密
  8. public function __construct($team)
  9. {
  10. $this->team = $team;
  11. }
  12. public function play()
  13. {
  14. return $this->name . '在' . $this->team . ' ,正在打比赛<br>';
  15. }
  16. }
  17. $p = new NbaPlay('湖人队');
  18. $p->name = 'James';
  19. echo $p->play();
  20. var_dump($p);
  21. // object(NbaPlay)#1 (2) { ["name"]=> string(5) "James" ["team":"NbaPlay":private]=> string(9) "湖人队" }
  22. // ! resource , null
  23. $fp = fopen('test.php', 'r');
  24. var_dump($fp); // resource(3) of type (stream)
  25. // null 空 != false != 0 != ''
  26. @var_dump($emp);
  27. $var = null;
  28. unset($fp);//释放变量
  29. @var_dump($fp);
2.变量作用域与PHP流程控制

变量作用域

  1. <?php
  2. /**
  3. * 变量作用域
  4. */
  5. define('NATION', '中国');
  6. function demo()
  7. {
  8. // $a,$b是定义在函数内部,属于局部变量 只在函数内部访问有效
  9. $a = 100;
  10. $b = 200;
  11. echo ($a + $b);
  12. }
  13. demo();
  14. // echo $a, $b;//非法访问,在函数外部不能访问到布局变量
  15. // 全局变量 无法在函数内部直接调用
  16. $one = 100;
  17. $two = 200;
  18. function test()
  19. {
  20. // 1. global
  21. global $one, $two;
  22. echo "运算结果是" . ($one + $two);
  23. // 2. $GLOBALS超全布变量
  24. echo "运算结果是" . ($GLOBALS['one'] + $GLOBALS['two']);
  25. echo NATION; //说明常量不受作用域限制
  26. }
  27. test();
  28. var_dump($_GET);
  29. ob_clean();
  30. echo '<pre>';
  31. print_r(get_defined_vars(true));
  32. //系统预定义变量
  33. // 超全局变量: 数组,任何地方都可以访问,不受作用域限制
  34. // $GLOBALS: 引用全局作用域中可用的全部变量
  35. // $_SERVER: 服务器和执行环境信息
  36. // $_GET :通过 URL 参数(又叫 query string)传递给当前脚本的变量的数组
  37. // $_POST:当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本
  38. // $_FILES:通过 HTTP POST 方式上传到当前脚本的项目的数组
  39. // $_COOKIE:通过 HTTP Cookies 方式传递给当前脚本的变量的数组
  40. // $_SESSION:当前脚本可用 SESSION 变量的数组
  41. // $_REQUEST: 默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组
  42. // $_ENV: 通过环境方式传递给当前脚本的变量的数组

PHP流程控制

  1. <?php
  2. /**
  3. * php流程控制结构
  4. */
  5. //!1. 单一条件分支结构
  6. // if(条件表达式 true)
  7. // {
  8. // #满足条件执行的代码块
  9. // }
  10. if (1 == 1) {
  11. echo 111;
  12. }
  13. //! 2.双向条件分支结构 if...else
  14. // if(条件表达式)
  15. // {
  16. // #满足条件执行的代码块
  17. // } else{
  18. #不满足条件执行的代码块
  19. // }
  20. // if():
  21. // endif;
  22. //3. 多向条件分支结构 if elseif elseif else
  23. $age = 85;
  24. $gender = '女';
  25. if ($gender == '女' && $age < 55) :
  26. echo "您好女士,距离您退休还有" . (55 - $age) . "年<br>";
  27. elseif ($gender == '女' && $age > 55) :
  28. echo "您好女士,您已经退休" . ($age - 55) . "年了<br>";
  29. elseif ($gender == '男' && $age < 60) :
  30. echo "先生您好,距离您退休还有" . (60 - $age) . "年<br>";
  31. elseif ($gender == '男' && $age > 60) :
  32. echo "先生您好 ,您已经退休" . ($age - 60) . "年了<br>";
  33. else :
  34. echo '很抱歉,您输入的信息不正确';
  35. endif;
  36. ob_clean();
  37. $d = date("w"); //0-6
  38. switch ($d):
  39. case 1:
  40. echo '今天是工作日星期一';
  41. break;
  42. case 2:
  43. echo '今天是工作日星期二';
  44. break;
  45. case 3:
  46. echo '今天是工作日星期三';
  47. break;
  48. case 4:
  49. echo '今天是工作日星期四';
  50. break;
  51. case 5:
  52. echo '今天是工作日星期五';
  53. break;
  54. default:
  55. echo "今天休息!";
  56. endswitch;
  57. // break 退出当前循环 continue 跳过此次循环,进入下一轮循环
【本文由:高防服务器ip http://www.558idc.com/gfip.html 复制请保留原URL】