初识 PHP 运行原理及数据类型

在 Windows 下选择一个自己喜欢的集成环境

windows 下可使用的面板非常多,但是好用的其实没有几个,这里写三个,我自己用的是 phpEnv

  • 小皮面板(phpstudy):这货原来叫 phpstudy,时间也很长了,功能很丰富,界面并不好看,一直在更新。但是稳定性就我个人感觉来说真不行,小问题非常多,我用的时间最久,由于不稳定让我删除的次数最多,当然这是我个人感觉

  • UPUPW:功能比较强大,界面也比小皮好看,但是每次创建站点后自定义的域名软件不会帮你设置下 hosts 文件,还要自己去设置,自己懒不想设置;如果你也懒也别用。不是说这种点小事自己还懒,因为面板很多,我肯定选择最让我用的最舒服的。精力放在学习代码上。

  • phpEnv:界面非常简单,但是功能都有。绑定了自定义域名也不用手动配置 hosts,稳定性和 upupw 也差不多,目前一直在用的集成。

[y1arct.jpg]

PHP 是怎么运行的?

有了 php 集成环境后我们就好奇 php 是怎么运行的呢

  1. 我们访问网站其实就是访问的一台装了 web 环境的一台电脑称之为服务器,服务器 web 环境有 nginx 和 apache,但是这两个只是将 web 服务器中的 html 和 js,CSS 等发回给用户浏览,由浏览器自己解析
  2. 如果访问的是.Php 文件,那么会有 web 服务器中的 Php 引擎也就是解析器来处理,处理完了之后转为 html 代码发回给 nginx 或者 apache
  3. 如果 php 文件中是 html 和 php 混编,只会把<?php…?>php 标签内的内容发给 php 解析器
  • 如下 php 引擎只会执行 php 标签中的代码
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>将PHP写到HTML中</title>
  7. </head>
  8. <body>
  9. <?php
  10. // 一旦html文档中出现了php标签,那么这个文档的扩展名必须是php
  11. //单号注释
  12. /*
  13. 多行
  14. 注释
  15. */
  16. // 短标签:需要在php配置文件中打开short_open_tag = on
  17. echo 'hello,这是PHP输出的代码';
  18. ?>
  19. <?php
  20. echo '<h3>短标签输出的内容</h3>'
  21. //如果只有一行语句,或者是最后一行代码可以不加;号
  22. ?>
  23. <?='不加echo 输出的内容'?>
  24. <?php
  25. $str = '<h2 style="color:blue">短标签输出的内容</h2>';
  26. ?>
  27. <?= $str ?>
  28. <!-- 自定义输出格式 -->
  29. <?php
  30. echo '<p>hello world</p>';//echo 可以输出多个值并且没有返回值
  31. print '<p>hello world</p>'; //print 只能输入一个值,有返回值
  32. echo print '<p>hello world</p><hr>';
  33. // printf (模板,要输出的数据)
  34. // 1+2=3
  35. printf('<hr>%d+%d=%d',1,2,1+2);
  36. // %d 表示整数,%s表示字符串,%f表示浮点数
  37. ?>
  38. <!-- sprintf,内容不输出,只返回
  39. vprintf,支持数组参数
  40. vsprintf,支持数组参数,内容不输出,只返回 -->
  41. </body>
  42. </html>

php 的数据类型

php 数据类型用什么来检测?

  • 我们可以用 php 内置的 gettype()函数来检测数据类型
  • 用 var_export 来得到一个变量值 的类型的“字符串表达”
  • var_dump PHP 内置函数,可同时完成上面两个函数的功能
  1. $passed = true;
  2. echo $passed;
  3. // 此显示为1,浏览器只能显示字符串,ECHO的时候会自动转为字符串,转为字符串就是“1”
  4. // 可以使用gettype来获取数据类型
  5. echo gettype($passed);
  6. //如果想得到一个变量值 的类型的“字符串表达”
  7. var_export($passed,true);
  8. // 还可以用来输出PHP源代码
  9. $res = var_export($passed,true);
  10. echo $res;
  11. // 同时看类型和值
  12. echo '<hr>type:'.gettype($passed).'<br>value:'.var_export($passed,true);
  13. //var_dump()内置的函数,既能看到值也能看到函数
  14. echo "<hr>";
  15. var_dump($passed); //主要用来调试,不能用于生产环境。可以输出多个值

基本类型:布尔类型、字符串类型、整数型、浮点数

布尔类型

如上代码中的变量$passed就是一个布尔类型,它的值要么为 false,要么为 true

数值型

数值型有两种,整型和浮点型

  1. $price = 89.9;//这是浮点型
  2. $number = 3; //这是整型

字符串型

必须要使用“单引号”或者“双引号”作为定界符

  1. $name = "admin";
  2. $email = "admin@php.cn";
  3. echo '<hr>name:'.$name.'email:'.$email.'<hr>';
  4. // echo 'hello '你好''; 这里会报错
  5. // 1.使用与定界符不同的引号类型
  6. echo 'hello "你好"';
  7. //2.将字符串内部的定界符号进行转义,转为失去定界符作用的普通字符
  8. echo 'hello \'你好\'';
  9. // \t:水平制表位,其实就是tab键,四个空格
  10. echo "c:\web\table\index.html";
  11. // 这里就需要将反斜线自身进行转义
  12. echo "c:\\web\\table\\index.html";

复合类型:数组、对象

数组

  1. $str = [1,"牛年大吉","5.5","false"];
  2. //数组索引默认从0开始递增
  3. echo 'id = ', $str[0],'<br>';
  4. $str[4] = true;
  5. $str[] = 243;
  6. // 如果不写索引他会自动追加到最后一个索引
  7. $lecture = [];
  8. $lecture[]="111";
  9. $lecture[]="222";
  10. $lecture[]="333";
  11. //数字索引依赖顺序,可以将数组成员的键名改为字符串,这样的话可以随机访问
  12. $str = ['id'=>1,'ta'=>"牛年大吉",'num'=>"5.5",'is'=>"false"];
  13. echo $str['id'],$str['ta'];
  14. print_r($str);
  15. echo '<pre>'.print_r($str).'</pre>';

对象

类与对象:在不引起误会的场景下,可以混用;对象与实例:实例是对象的同义词

  1. $a = 1;
  2. $b = 2;
  3. function sum($a,$b){
  4. return $a .'+'.$b.'='.($a+$b);
  5. }
  6. echo sum($a,$b);
  7. //写个容器将上面的代码进行封装,这个窗口就是:对象
  8. //使用对象的本质是代码复用
  9. class Demo{
  10. //变量=》属性
  11. private $a = 1;
  12. private $b = 2;
  13. public function sum(){
  14. return $this->a .'+'.$this->b.'='.($this->a+$this->b);
  15. }
  16. }
  17. $obj = new Demo();
  18. echo $obj->sum(),"<br>";

更多相关文章

  1. NIPS2020 | 基于核的渐进式蒸馏的加法神经网络
  2. [牛课习题]判断字符串是否回文及统计回文
  3. [牛客习题]任意进制转换
  4. php学习笔记(20个常用的字符串函数)
  5. 字符串函数
  6. PHP类与对象的基础概念
  7. PHP常用的字符串处理函数
  8. Python学习系列之 xrange和range的区别!
  9. 实用的php字符串函数总结

随机推荐

  1. 我在Java中组织这些if语句时遇到了很多麻
  2. java与ASP.NET网络应用程序在生命期开始
  3. 怎样用java生成GUID与UUID
  4. 怎么用java 实现两个web service之间调用
  5. Java IO流系列(四)—— 从字节流及其缓冲区
  6. java8中lambda表达式
  7. FilenameFilter文件名过滤器使用实例
  8. Java核心技术卷I:基础知识(原书第8版):14.
  9. String字符串的应用
  10. java求1-1/3+1/5-1/7+1/9