# 初识PHP

PHP(外文名:PHP Hypertext Preprocessor,中文:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,Perl以及PHP自创的语法。它可以比CGl或者Perl更快速地执行动态网页。用PHP做出的动态网页与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完成生成HTML标记的CGl要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

这篇文章主要是记录PHP入门时需要注意的一些点,PHP具体用法可以参照W3C文档:PHP (opens new window)

  1. PHP语句书写时一定要带分号,并且连接字符串是用.

  2. PHP中变量用$符号来声明。

<?php
  $a = '变量测试';
  echo $a;
?>
1
2
3
4
  1. PHP是块级作用域的。比如在下面这段代码中,变量a根本就没有声明,打印的时候肯定会报错。但是在JS中其实是有声明的了,只是打印出来的结果是undefined
<?php
  if (false) {
    $a = '测试';
  }
  echo $a;
?>
1
2
3
4
5
6

PHP中判断一个变量是否有被声明可以用isset方法。

<?php
  if (false) {
    $a = '测试';
  }
  if (isset($a)) {
    echo '我是被声明的';
  } else {
    echo '我没被声明';
  }
?>
1
2
3
4
5
6
7
8
9
10

上面这段代码会在浏览器打印出‘我没被声明’。
php

  1. global关键字可以将一个变量变成全局的。下面这段代码在浏览器中运行时会报错,因为变量a是在函数外面声明的,在函数里面没法直接访问到。
<?php
  $a="我是外面的";
  function test(){
    echo $a;
  }
  test();
?>
1
2
3
4
5
6
7

如果我们想访问到变量a,那么就需要给a加上global

<?php  
  $a="我是外面的";
  function test(){
    global $a;
    echo $a;
  }
  test();
?>
1
2
3
4
5
6
7
8

此外,PHP中还有另外一个关键字$GLOBALS。加了这个关键字的变量在所有的PHP文件中都会生效。比如下面这段代码中的变量a的值会被修改,最终输出‘我被改了’

<?php  
  $a="我是外面的";
  function test(){
    global $a;
    $GLOBALS['a'] = "我被改了";
    echo $a;
  }
  test();
?>
1
2
3
4
5
6
7
8
9
  1. 在PHP文件中引入其他的PHP文件。引用方式有两种:
<?php
  require_once('a.php');
  include_once('a.php');
?>
1
2
3
4

once就是引入一次,两者的区别就是include不论有没有引入错误,代码都是会执行的;require如果代码中出错就不会执行了,和php文件融为一体了。

// test.php
<?php
  $GLOBALS['b'] = 'test';
?>

// index.php
<?php
  require_once('test.php');
  function test () {
    echo $GLOBALS['b'];
  }
  test();
?>
1
2
3
4
5
6
7
8
9
10
11
12
13

直接打印出test.php文件中定义的全局变量b的值。

  1. PHP数组
<?php
  $arr = array('0' => '苹果', '1' => '梨');
  echo json_encode($arr, JSON_UNESCAPED_UNICODE);
  echo $arr[0];
?>
1
2
3
4
5

浏览器中直接打印出json格式的数据
php

  1. session会话机制
    如果在网站上执行过某个php文件,打开过这个页面,然后在这个网站上打开别的页面,就像跟浏览器做了一次对话,这时候往session里存一个东西,我们就能在其他页面取到。比如,先访问session.php,再访问array.php,就能够取到view的值,这是一个会话间的存储。
// session.php
<?php
  session_start(); // 会话机制需要设置,设置一次就行了
  $_SESSION['view'] = 1
?>

// array.php
<?php
  require_once('session.php');
  echo $_SESSION['view'];
?>
1
2
3
4
5
6
7
8
9
10
11
  1. 向PHP文件发起请求,比如下面的代码模拟了一个表单提交请求。
<form action="form.php" method="post">
  <label>用户名</label>
  <input type="text" id="username" name="username" />
  <label>密码</label>
  <input type="text" name="password">
  <input type="submit" id="btn" value="提交" />
</form>
1
2
3
4
5
6
7
$('#btn').click(function (e) {
  e.preventDefault();
  $.ajax({
    url: 'form.php',
    type: 'post',
    data: {
      username: $('#username').val()
    },
    dataType: 'json',
    success: function (data) {
      console.log(data)
    },
    error: function (e) {
      console.log(e)
    }
  })
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
  // 通过报头的形式设置php页面的编码格式
  header('Content-type: text/html; charset=utf-8');
  $username = $_REQUEST['username']; // $_REQUEST 能接受任何请求
  if ($username === 'admin') {
    echo  json_encode(array('msg' => '登录成功', 'errorCode' => 'ok'));
  } else {
    echo  json_encode(array('msg' => '登录失败', 'errorCode' => 'fail'));
  }
?>
1
2
3
4
5
6
7
8
9
10

上面代码的运行效果如下:

  • 点击提交按钮发起请求
    php
  • 请求返回结果
    php
上次更新时间: 2021年11月30日 16:37:18