PHP基础入门(一)

[!NOTE]

本篇文章仅用于个人交流与学习,如涉及侵权请联系站长删除!

1. 概述

​ PHP(Hypertext Preprocessor)是一种广泛使用的开源服务器端脚本语言,尤其适用于Web开发。

  • PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码。
  • PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器。
  • PHP 文件的默认文件扩展名是 .php

​ 通过 PHP,您不再限于输出 HTML。您可以输出图像、PDF 文件,甚至 Flash 电影。您还可以输出任意的文本,比如 XHTML 和 XML。

2. 搭建环境

​ 想要学习PHP语言,我们还需要搭建一个PHP语言所需要的环境,和一个服务器(这里我们使用nginx)。

2.1 下载所需软件

2.2 PHP安装

  • 将下载的PHP压缩包解压在C盘的根目录下(C:/php)。

  • 将 C:/php/ 目录下的 php.ini-development 文件改为 php.ini 。

  • 之后修改php配置文件,打开常用的扩展文件。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    extension_dir="ext"
    cgi.fix_pathinfo=1
    enable_dl=Off

    ; 开启常用扩展
    extension=curl
    extension=gd
    extension=mbstring
    extension=mysqli
    extension=openssl
    extension=pdo_mysql

    ; 启用OPcache加速
    zend_extension=opcache

2.3 NGINX配置(nginx.conf)和启用PHP解析(FastCGI)

​ 将下载好的NGINX压缩包解压在合适的位置,完成后我们打开conf文件夹下的nginx.conf文件,配置以下选项。

1
2
3
4
5
6
7
8
9
    location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;

fastcgi_read_timeout 300;
}

​ 需要注意的是http协议的默认端口为80,如果用户的80端口已经被占用,我们在运行nginx.exe时是无法启用的,这里我们可以通过修改server下的监听端口listen来避免此问题。

1
2
3
4
server {
# listen 80;
listen 5050;
server_name localhost;

2.4 测试环境

​ 在配置好所有环境之后我们还需要重启nginx来保证,刚刚修改的内容正常应用,在nginx目录下打开终端输入下面的指令来重启nginx。

1
nginx -s reload

​ 重启后我们访问http://localhost:5050(注意:这里的端口是我自己使用的监听端口)就可以看到我们的服务器已经启动了。

1

​ 接下来我们需要创建一个PHP文件来测试我们的环境是否配置成功,首先运行fast-cgi代理,在php根目录下用管理员权限打开终端,输入下面的指令。

1
php-cgi.exe -b 127.0.0.1:9000
  • 注意:不要中断运行!

​ 之后在 nginx/html/ 目录下创建test.php文件,并输入下面的内容。

1
2
3
<?php 
echo "Hello PHP!";
?>

保存后进入http://localhost:5050/1.php。就可以看到我们已经连接成功了。

2

3. 语法

3.1 格式

​ PHP脚本可以放在文件中的任何位置,脚本以<?php开始,以?>结束,例如:

1
2
3
<?php
// PHP 代码
?>

其中//是PHP的单行注释,要是想要多行注释则需要借助/* */来完成。

3.2 第一个PHP程序

​ 在刚刚的测试用例中我们已经演示过这个例子了:

1
2
3
<?php 
echo "Hello PHP!";
?>

3.3 变量

​ 变量是所有编程语言中都有的概念,是用于程序存储数据的”容器”。

PHP中通过语法:$变量名 = 变量值;来定义变量,PHP属于弱类型语言,所以变量声明的时候不需要设置数据类型,变量的类型取决于值得类型。

1
2
3
4
5
6
<?php
$a=3;
$b=6;
$c=$a+$b;
echo $c; // 输出的结果为9
?>

4. 数据类型

​ PHP中的数据类型也分为这几大类:String(字符串)、 Integer(整型)、 Float(浮点型)、Boolean(布尔型)、 Array(数组)、Object(对象)、 NULL(空值)。

4.1 字符串

​ 就像刚刚第一个程序中的Hello PHP!一样,一个字符串是一串字符的序列。我们可以将任何文本放在单引号和双引号中:

1
2
3
4
5
6
7
<?php 
$x = "Hello world!";
echo $x;
echo "<br>";
$x = 'Hello world!';
echo $x;
?>

4.2 整数和浮点数

整数是一个没有小数的数字。浮点数是带小数部分的数字,或是指数形式。

1
2
3
4
5
6
<?php 
$x = 1359;
$x = -345; // 负数
$x = 0x8C; // 十六进制数
$x = 047; // 八进制数
?>
1
2
3
4
5
6
7
8
9
<?php 
$x = 10.365;
var_dump($x); // 输出float(10.365)

echo "<br>"; // 换行

$x = 2.4e3;
var_dump($x); // 输出float(2400)
?>
  • 注意:var_dump()函数可以返回变量的数据类型和值。

4.3 布尔类型

​ 布尔型可以是TRUEFALSETRUE标识真,FALSE标识假。

1
2
3
4
<?php
$a=true;
$b=false;
?>

4.4 对象类型

​ 对象类型可以用于存储数据,使用class关键字声明类对象,类包含属性和方法。

1
2
3
4
5
6
7
8
9
10
11
<?php
//类名
class Car{
//属性
var $color;
//方法
function fun1() {
echo "方法1";
}
}
?>

4.5 NULL值

NULL值表示变量没有值,NULL 是数据类型为 NULL 的值。

1
2
3
4
5
<?php
$x="Hello world!";
$x=null;
var_dump($x); // 输出的结果是 NULL
?>
  • 解释:这里先将字符串Hello world!赋值给变量$x,之后又将$x的值设置成null(空值),null类型会被直接输出为NULL

5. 运算符

5.1 算数运算符

运算符 名称 格式
+ $a + $b
- $a - $b-$a
* $a * $b
/ $a / $b(返回浮点数)
% 取余 $a % $b(返回余数)
** 幂运算 $a ** $b(如 2**3 结果为 8
1
2
3
echo 5 + 3;   // 输出8
echo 10 % 3; // 输出1
echo 2 ** 4; // 输出16

5.2 赋值运算符

运算符 名称 格式 功能
= 赋值运算符 $a = 5 基本赋值
+= 加法复制运算符 $a += 5 $a = $a + 5
-= 减法复制运算符 $a -= 5 $a = $a - 5
*= 乘法赋值运算符 $a *= 5 $a = $a * 5
/= 除法赋值运算符 $a /= 5 $a = $a / 5
%= 取余赋值运算符 $a %= 5 $a = $a % 5
**= 幂运算赋值运算符 $a **= 5 $a = $a ** 5
.= 拼接赋值运算符 $str .= " PHP" 字符串连接
1
2
3
4
5
6
7
8
// 基本赋值
$a = 10;

$a += 5; // $a = 15

//字符串连接
$str = "Hi";
$str .= " PHP"; // "Hi PHP"

5.3 比较运算符

运算符 名称
== 等于
=== 全等
!=<> 不等于
!== 不全等
><>=<= 大小比较
<=> 太空船运算符(返回-1, 0, 1)
1
2
3
var_dump("5" == 5);   // true(值相同)
var_dump("5" === 5); // false(类型不同)
var_dump(2 <=> 3); // -1(2小于3)

5.4 逻辑运算符

运算符 名称
&&and 逻辑与
||or 逻辑或
! 逻辑非
xor 异或
1
2
if ($a > 0 && $b < 10) { }/* 同时成立时触发 */
if (!$is_valid) { }/* $is_valid为false时触发 */

5.5 字符串运算符

运算符 功能
. 连接字符串
.= 连接并赋值
1
2
3
4
5
$name = "Alice";
echo "Hello " . $name; // "Hello Alice"

$str = "Hi";
$str .= " PHP"; // "Hi PHP"

5.6 递增/递减运算符

运算符 名称
++$a 前递增(先加后返回值)
$a++ 后递增(先返回值后加)
--$a 前递减(先减后返回值)
$a-- 后递减(先返回值后减)
1
2
$x = 5;
echo ++$x; // 6($x先变成6,再输出)
1
2
$x = 6
echo $x++; // 6(输出6,然后$x变7)

5.7 数组运算符

运算符 功能
+ 合并数组(保留第一个数组的键)
== 键值对相同
=== 键值对相同且顺序、类型一致
1
2
3
$a = [1, 2];
$b = [3, 4];
$c = $a + $b; // [1, 2](相同键名会被忽略)

5.8 错误控制运算符

@ 抑制错误:@file('none.txt');(不显示警告)

5.9 位运算符

运算符 名称
& 按位与
| 按位或
^ 按位异或
~ 按位取反
<< 左移
>> 右移
1
echo 9 & 3; // 1(二进制 1001 & 0011 = 0001)