接触php

配置 PHP 支持

Apache 只能处理静态文件请求,对于后缀名为 .php 这种动态文件,它无法执行,所以就当成是一 个静态文件直接返回。

  • 在服务器上安装 PHP

    • 解压 php 到纯英文路径目录中
  • 在 Apache 中添加支持 PHP 的配置

    在 Apache 添加 PHP 处理模块

1
LoadModule php7_module 路径
在 <IfModule mime_module> 节点中添加 .php 扩展名解析支持 
1
AddType application/x‐httpd‐php .php

​ 默认文档配置节点 中添加 index.php,默认文档指的是在访问一个目录而不是具体文件名时,默认执行的文件名

1
2
3
<IfModule dir_module> 
    DirectoryIndex index.html index.php
</IfModule>
  • 重启Apache

Apache与PHP

我们不能把他们混在一起,他们两者各自有各自负责的领域,各自的职责,但是我们在使用 PHP 做动态网站开发时,两者就会产生联系,具体如下:

你可以理解为:Apache 是一家没有太多能力的公司,只能处理一些简单的业务(静态网站),但是心很大想 做更多的事(动态网站),所以就想到了外包,所有额外的业务都需要外包给其他程序,而 PHP 就是理解为 一个专门能够处理 php 业务的外包公司

PHP

类似于在 HTML 中使用 JavaScript,但是不同的是 JavaScript 运行在客户端,而 PHP 运行在服务端。 只有处于 PHP 标记内部的代码才是 PHP 代码,PHP 标记以外都原封不动。

  1. PHP 标记

    • <?php 进入PHP模式
    • ?> 退出PHP模式
    • 类似于在 HTML 中使用 JavaScript,但是不同的是 JavaScript 运行在客户端,而 PHP 运行在服务端。 只有处于 PHP 标记内部的代码才是 PHP 代码,PHP 标记以外都原封不动。
    • 省略结束标记:当PHP处于文件末尾时,省略结束标记,方式出现额外空行。
  2. 输出内容格式

    • echo

      1
      2
      3
      4
      5
      6
      // echo 是 PHP 中的一个特殊的“指令”,
      // 不一定需要像函数那样通过 `()` 去使用
      // 注意:echo 后面紧跟着一个空格
      echo 'hello php';
      echo 'hello''world'; //可以输出多个参数
      // => `helloworld`
  • print

    print 与 echo 唯一区别就是只能有一个参数 print ‘hello’;

  • var_dump

    1
    2
    3
    4
    <?php 
    // var_dump 是一个函数,必须跟上 () 调用
    // 可以将数据以及数据的类型打印为特定格式 var_dump('hello php');
    // => 'string(9) "hello php"'

    还有一些输出函数,先不说。。

  1. 与HTML混编

    • 普通嵌入

      1
      <p><?php echo 'hello'?></p>
    • 语句混编

      1
      2
      3
      4
      5
      <?php if ($age 18): ?>   
      <p>成年人</p>
      <?php else?>
         <p>小朋友</p>
      <?php endif ?>
  2. 注释

    • 单行====> // 或 #
    • 多行====> /* 内容 */
  3. 语法

    • 和其他编程语言大同小异
  4. 变量

    • PHP 中申明一个变量是用一个美元符号后面跟变量名来表示。
    • 变量名同样是区分大小写的。
    • PHP 中变量无需声明类型,变量的类型根据值的类型来推断。
1
2
3
4
5
<?php 
$foo// 申明一个变量,变量名为 `foo`,未对其进行赋值
$bar 'baz'// 申明一个变量,将一个值为 `baz` 的字符串赋值给它
echo $foo// 输出一个变量名为 `foo` 的变量
fn($bar)// 将一个变量名为 `foo` 的变量作为 `fn` 的实参传递
  1. 超全局变量

    PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。

    这些超全局变量是:

    • $GLOBALS — 引用全局作用域中可用的全部变量
    • $_SERVER — 获取服务端相关信息
    • $_REQUEST — 获取提交参数
    • $_POST — 获取 POST 提交参数
    • $_GET — 获取 GET 提交参数
    • $_FILES — 获取上传文件
    • $_ENV — 操作环境变量
    • $_COOKIE — 操作 Cookie
    • $_SESSION — 操作 Session
  2. 常量

    • 定义

    • <?php 
      // 定义常量使用的是内置的 `define` 函数 
      // 第一个参数是常量的名称,建议采用全大写字母命名,多个单词下划线分隔 
      // 第二个参数是常量中存放的数据,可以是任意类型 
      // 第三个参数是常量名称是否区不分大小写,默认 false 区分大小写 
      define('SYSTEM_NAME', '大百度'); 
      define('SYSTEM_ENABLE', true);
      <!--code8-->