banner
PHP 备忘录

PHP 备忘录

Scroll down

PHP 备忘清单

这份 PHP 备忘单为快速查找最常用代码的正确语法提供了参考

入门

hello.php

1
2
3
4
<?php // 以 PHP 开放标签开头
echo "Hello World\n";
print("Hello jaywcjlove.github.io");
?>

PHP 运行命令

1
$ php hello.php

变量 Variables

1
2
3
4
5
6
7
$boolean1 = true;
$boolean2 = True;
$int = 12;
$float = 3.1415926;
unset($float); // 删除变量
$str1 = "How are you?";
$str2 = 'Fine, thanks';

查看: Types

字符串 Strings

1
2
3
4
5
6
7
$url = "jaywcjlove.github.io";
echo "I'm learning PHP at $url";
// 连接字符串
echo "I'm learning PHP at " . $url;
$hello = "Hello, ";
$hello .= "World!";
echo $hello; # => Hello, World!

查看: Strings

数组 Arrays

1
2
3
4
5
$num = [1, 3, 5, 7, 9];
$num[5] = 11;
unset($num[2]); // 删除变量
print_r($num); # => 1 3 7 9 11
echo count($num); # => 5

查看: Arrays

运算符 Operators

1
2
3
4
$x = 1;
$y = 2;
$sum = $x + $y;
echo $sum; # => 3

查看: Operators

Include

vars.php

1
2
3
4
5
<?php // 以 PHP 开放标签开头。
$fruit = 'apple';
echo "I was imported";
return 'Anything you like.';
?>

test.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
include 'vars.php';
echo $fruit . "\n"; # => apple
/* 与 include 相同,
如果不能包含则导致错误*/
require 'vars.php';
// 也有效
include('vars.php');
require('vars.php');
// 通过 HTTP 包含
include 'http://x.com/file.php';
// 包含和返回语句
$result = include 'vars.php';
echo $result; # => Anything you like.
?>

功能 Functions

1
2
3
4
5
function add($num1, $num2 = 1) {
return $num1 + $num2;
}
echo add(10); # => 11
echo add(10, 5); # => 15

查看: Functions

注释 Comments

1
2
3
4
# 这是一个单行 shell 样式的注释
// 这是一行 c++ 风格的注释
/* 这是一个多行注释
另一行注释 */

常数 Constants

1
2
3
4
5
const MY_CONST = "hello";
echo MY_CONST; # => hello

# => MY_CONST is: hello
echo 'MY_CONST is: ' . MY_CONST;

类 Classes

1
2
3
4
5
6
class Student {
public function __construct($name) {
$this->name = $name;
}
}
$alex = new Student("Alex");

查看: Classes

PHP 类型

布尔值 Boolean

1
2
3
4
5
6
$boolean1 = true;
$boolean2 = TRUE;
$boolean3 = false;
$boolean4 = FALSE;
$boolean5 = (boolean) 1; # => true
$boolean6 = (boolean) 0; # => false

布尔值不区分大小写

整数 Integer

1
2
3
4
5
6
7
$int1 = 28;    # => 28
$int2 = -32; # => -32
$int3 = 012; # => 10 (octal)
$int4 = 0x0F; # => 15 (hex)
$int5 = 0b101; # => 5 (binary)
# => 2000100000 (decimal, PHP 7.4.0)
$int6 = 2_000_100_000;

另见: Integers

字符串 Strings

1
echo 'this is a simple string';

查看: Strings

数组 Arrays

1
$arr = array("hello", "world", "!");

查看: Arrays

浮点数 Float (Double)

1
2
3
4
5
6
7
$float1 = 1.234;
$float2 = 1.2e7;
$float3 = 7E-10;
$float4 = 1_234.567; // as of PHP 7.4.0
var_dump($float4); // float(1234.567)
$float5 = 1 + "10.5"; # => 11.5
$float6 = 1 + "-1.3e3"; # => -1299

Null

1
2
3
4
5
6
7
8
$a = null;
$b = 'Hello php!';
echo $a ?? 'a is unset'; # => a is unset
echo $b ?? 'b is unset'; # => Hello php
$a = array();
$a == null # => true
$a === null # => false
is_null($a) # => false

可迭代对象 Iterables

1
2
3
4
5
6
7
8
9
10
11
function bar(): iterable {
return [1, 2, 3];
}
function gen(): iterable {
yield 1;
yield 2;
yield 3;
}
foreach (bar() as $value) {
echo $value; # => 123
}

PHP 字符串

字符串 String

1
2
3
4
5
6
7
8
# => '$String'
$sgl_quotes = '$String';
# => 'This is a $String.'
$dbl_quotes = "This is a $sgl_quotes.";
# => a tab character.
$escaped = "a \t tab character.";
# => a slash and a t: \t
$unescaped = 'a slash and a t: \t';

多行 Multi-line

1
2
3
4
5
6
7
8
9
10
11
$str = "foo";
// 未插值的多行
$nowdoc = <<<'END'
Multi line string
$str
END;
// 将执行字符串插值
$heredoc = <<<END
Multi line
$str
END;

操作 Manipulation

1
2
3
4
5
6
7
8
9
$s = "Hello Phper";
echo strlen($s); # => 11
echo substr($s, 0, 3); # => Hel
echo substr($s, 1); # => ello Phper
echo substr($s, -4, 3);# => hpe
echo strtoupper($s); # => HELLO PHPER
echo strtolower($s); # => hello phper
echo strpos($s, "l"); # => 2
var_dump(strpos($s, "L")); # => false

另见: 字符串函数

PHP 数组

定义

1
2
3
$a1 = ["hello", "world", "!"]
$a2 = array("hello", "world", "!");
$a3 = explode(",", "apple,pear,peach");

混合 int 和 string 键

1
2
3
4
5
6
7
$array = array(
"foo" => "bar",
"bar" => "foo",
100 => -100,
-100 => 100,
);
var_dump($array);

短数组语法

1
2
3
4
$array = [
"foo" => "bar",
"bar" => "foo",
];

多阵列

1
2
3
4
5
6
7
8
$multiArray = [ 
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
];
print_r($multiArray[0][0]) # => 1
print_r($multiArray[0][1]) # => 2
print_r($multiArray[0][2]) # => 3

多类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$array = array(
"foo" => "bar",
42 => 24,
"multi" => array(
"dim" => array(
"a" => "foo"
)
)
);
# => string(3) "bar"
var_dump($array["foo"]);
# => int(24)
var_dump($array[42]);
# => string(3) "foo"
var_dump($array["multi"]["dim"]["a"]);

操作

1
2
3
4
5
6
$arr = array(5 => 1, 12 => 2);
$arr[] = 56; // 附加
$arr["x"] = 42; // 用键添加
sort($arr); // 排序
unset($arr[5]); // 消除
unset($arr); // 移除所有

查看: 数组函数

索引迭代

1
2
3
4
5
$array = array('a', 'b', 'c');
$count = count($array);
for ($i = 0; $i < $count; $i++) {
echo "i:{$i}, v:{$array[$i]}\n";
}

价值迭代

1
2
3
4
$colors = array('red', 'blue', 'green');
foreach ($colors as $color) {
echo "Do you like $color?\n";
}

关键迭代

1
2
3
4
5
6
$arr = ["foo" => "bar", "bar" => "foo"];
foreach ( $arr as $key => $value )
{
echo "key: " . $key . "\n";
echo "val: {$arr[$key]}\n";
}

串联阵列

1
2
3
4
5
$a = [1, 2];
$b = [3, 4];
// PHP 7.4 以后
# => [1, 2, 3, 4]
$result = [...$a, ...$b];

Into 函数

1
2
3
4
5
6
$array = [1, 2];
function foo(int $a, int $b) {
echo $a; # => 1
echo $b; # => 2
}
foo(...$array);

Splat运算符

1
2
3
4
5
6
7
function foo($first, ...$other) {
var_dump($first); # => a
var_dump($other); # => ['b', 'c']
}
foo('a', 'b', 'c' /*, ...*/ );
// 或
function foo($first, string ...$other){}

PHP 运算符

算术

:- -
+ 添加
- 减法
* 乘法
/ 分配
% 取模
** 求幂

分配

:- -
a += b 如同 a = a + b
a -= b 如同 a = a – b
a *= b 如同 a = a * b
a /= b 如同 a = a / b
a %= b 如同 a = a % b

比较

:- -
== 平等的
=== 完全相同的
!= 不相等
<> 不相等
!== 不相同
< 少于
> 比…更棒
<= 小于或等于
>= 大于或等于
<=> 小于/等于/大于

逻辑的

:- -
and
or 或者
xor 独家或
! 不是
&&
|| 或者

算术

1
2
3
4
5
6
7
8
9
10
11
// 算术
$sum = 1 + 1; // 2
$difference = 2 - 1; // 1
$product = 2 * 2; // 4
$quotient = 2 / 1; // 2
// 速记算术
$num = 0;
$num += 1; // 将 $num 增加 1
echo $num++; // 打印 1(评估后的增量)
echo ++$num; // 打印 3(评估前的增量)
$num /= $float; // 将商除并分配给 $num

按位

:- -
&
` `
^ 异或(异或)
~ 不是
<< 左移
>> 右移

PHP 条件

If elseif else

1
2
3
4
5
6
7
8
9
$a = 10;
$b = 20;
if ($a > $b) {
echo "a is bigger than b";
} elseif ($a == $b) {
echo "a is equal to b";
} else {
echo "a is smaller than b";
}

Switch

1
2
3
4
5
6
7
8
9
10
11
12
$x = 0;
switch ($x) {
case '0':
print "it's zero";
break;
case 'two':
case 'three':
// do something
break;
default:
// do something
}

三元运算符

1
2
3
4
5
6
7
8
9
10
11
# => Does
print (false ? 'Not' : 'Does');
$x = false;
# => Does
print($x ?: 'Does');
$a = null;
$b = 'Does print';
# => a is unsert
echo $a ?? 'a is unset';
# => print
echo $b ?? 'b is unset';

匹配

1
2
3
4
5
6
7
8
$statusCode = 500;
$message = match($statusCode) {
200, 300 => null,
400 => '未找到',
500 => '服务器错误',
default => '已知状态码',
};
echo $message; # => 服务器错误

查看: Match

匹配表达式

1
2
3
4
5
6
7
8
$age = 23;
$result = match (true) {
$age >= 65 => 'senior',
$age >= 25 => 'adult',
$age >= 18 => 'young adult',
default => 'kid',
};
echo $result; # => young adult

PHP 循环

while 循环

1
2
3
4
5
$i = 1;
# => 12345
while ($i <= 5) {
echo $i++;
}

do while 循环

1
2
3
4
5
$i = 1;
# => 12345
do {
echo $i++;
} while ($i <= 5);

for i 循环

1
2
3
4
# => 12345
for ($i = 1; $i <= 5; $i++) {
echo $i;
}

break 跳出循环

1
2
3
4
5
6
7
# => 123
for ($i = 1; $i <= 5; $i++) {
if ($i === 4) {
break;
}
echo $i;
}

continue 继续

1
2
3
4
5
6
7
# => 1235
for ($i = 1; $i <= 5; $i++) {
if ($i === 4) {
continue;
}
echo $i;
}

foreach 循环

1
2
3
4
5
$a = ['foo' => 1, 'bar' => 2];
# => 12
foreach ($a as $k) {
echo $k;
}

查看: Array iteration

PHP 函数

返回值

1
2
3
4
5
function square($x)
{
return $x * $x;
}
echo square(4); # => 16

返回类型

1
2
3
4
5
6
// 基本返回类型声明
function sum($a, $b): float {/*...*/}
function get_item(): string {/*...*/}
class C {}
// 返回一个对象
function getC(): C { return new C; }

可空返回类型

1
2
3
4
5
6
7
// 在 PHP 7.1 中可用
function nullOrString(int $v) : ?string
{
return $v % 2 ? "odd" : null;
}
echo nullOrString(3); # => odd
var_dump(nullOrString(4)); # => NULL

查看: Nullable types

无效函数

1
2
3
4
5
6
7
// 在 PHP 7.1 中可用
function voidFunction(): void
{
echo 'Hello';
return;
}
voidFunction(); # => Hello

变量函数

1
2
3
4
5
6
function bar($arg = '')
{
echo "In bar(); arg: '$arg'.\n";
}
$func = 'bar';
$func('test'); # => In bar(); arg: test

匿名函数

1
2
3
4
5
6
$greet = function($name)
{
printf("Hello %s\r\n", $name);
};
$greet('World'); # => Hello World
$greet('PHP'); # => Hello PHP

递归函数

1
2
3
4
5
6
7
8
function recursion($x)
{
if ($x < 5) {
echo "$x";
recursion($x + 1);
}
}
recursion(1); # => 1234

默认参数

1
2
3
4
5
6
7
8
9
10
function coffee($type = "cappuccino")
{
return "Making a cup of $type.\n";
}
# => 制作一杯卡布奇诺
echo coffee();
# => 制作一杯
echo coffee(null);
# => 制作一杯浓缩咖啡
echo coffee("espresso");

箭头函数

1
2
3
4
5
6
7
8
9
$y = 1;

$fn1 = fn($x) => $x + $y;
// 相当于按值使用 $y:
$fn2 = function ($x) use ($y) {
return $x + $y;
};
echo $fn1(5); # => 6
echo $fn2(5); # => 6

PHP 类

构造函数 Constructor

1
2
3
4
5
6
7
8
9
10
class Student {
public function __construct($name) {
$this->name = $name;
}
public function print() {
echo "Name: " . $this->name;
}
}
$alex = new Student("Alex");
$alex->print(); # => Name: Alex

继承 Inheritance

1
2
3
4
5
6
7
8
9
10
11
class ExtendClass extends SimpleClass
{
// 重新定义父方法
function displayVar()
{
echo "Extending class\n";
parent::displayVar();
}
}
$extended = new ExtendClass();
$extended->displayVar();

类变量 Classes variables

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class MyClass
{
const MY_CONST = 'value';
static $staticVar = 'static';
// 可见度
public static $var1 = 'pubs';
// 仅限类
private static $var2 = 'pris';
// 类和子类
protected static $var3 = 'pros';
// 类和子类
protected $var6 = 'pro';
// 仅限类
private $var7 = 'pri';
}

静态访问

1
2
echo MyClass::MY_CONST;   # => value
echo MyClass::$staticVar; # => static

魔术方法

1
2
3
4
5
6
7
8
9
10
11
12
13
class MyClass
{
// 对象被视为字符串
public function __toString()
{
return $property;
}
// 与 __construct() 相反
public function __destruct()
{
print "Destroying";
}
}

接口

1
2
3
4
5
6
7
8
9
10
11
12
13
interface Foo 
{
public function doSomething();
}
interface Bar
{
public function doSomethingElse();
}
class Cls implements Foo, Bar
{
public function doSomething() {}
public function doSomethingElse() {}
}

各种各样的

基本错误处理

1
2
3
4
5
6
7
try {
// 做一点事
} catch (Exception $e) {
// 处理异常
} finally {
echo "Always print!";
}

PHP 8.0 中的异常

{.wrap}
1
2
3
4
5
6
7
$nullableValue = null;
try {
$value = $nullableValue ?? throw new InvalidArgumentException();
} catch (InvalidArgumentException) { // 变量是可选的
// 处理我的异常
echo "print me!";
}

自定义异常

1
2
3
class MyException extends Exception {
// 做一点事
}

用法

1
2
3
4
5
6
7
8
try {
$condition = true;
if ($condition) {
throw new MyException('bala');
}
} catch (MyException $e) {
// 处理我的异常
}

Nullsafe 运算符

1
2
3
4
5
6
7
8
9
10
11
12
13
// 从 PHP 8.0.0 开始,这一行:
$result = $repo?->getUser(5)?->name;
// 相当于下面的代码:
if (is_null($repo)) {
$result = null;
} else {
$user = $repository->getUser(5);
if (is_null($user)) {
$result = null;
} else {
$result = $user->name;
}
}

另见: Nullsafe 运算符

常用表达

1
2
$str = "Visit jaywcjlove.github.io";
echo preg_match("/qu/i", $str); # => 1

查看: PHP中的正则表达式

fopen() 模式

:- -
r
r+ 读写,前置
w 写入,截断
w+ 读写,截断
a 写,追加
a+ 读写,追加

运行时定义的常量

1
2
3
4
5
define("CURRENT_DATE", date('Y-m-d'));
// 一种可能的表示
echo CURRENT_DATE; # => 2021-01-05
# => CURRENT_DATE is: 2021-01-05
echo 'CURRENT_DATE is: ' . CURRENT_DATE;

另见

其他文章
cover
JSON 备忘录
  • 25/01/08
  • 10:35
  • 前端技术
cover
JQuery 备忘录
  • 25/01/08
  • 10:35
  • 前端技术
目录导航 置顶
  1. 1. PHP 备忘清单
    1. 1.1. 入门
      1. 1.1.1. hello.php
      2. 1.1.2. 变量 Variables
      3. 1.1.3. 字符串 Strings
      4. 1.1.4. 数组 Arrays
      5. 1.1.5. 运算符 Operators
      6. 1.1.6. Include
      7. 1.1.7. 功能 Functions
      8. 1.1.8. 注释 Comments
      9. 1.1.9. 常数 Constants
      10. 1.1.10. 类 Classes
    2. 1.2. PHP 类型
      1. 1.2.1. 布尔值 Boolean
      2. 1.2.2. 整数 Integer
      3. 1.2.3. 字符串 Strings
      4. 1.2.4. 数组 Arrays
      5. 1.2.5. 浮点数 Float (Double)
      6. 1.2.6. Null
      7. 1.2.7. 可迭代对象 Iterables
    3. 1.3. PHP 字符串
      1. 1.3.1. 字符串 String
      2. 1.3.2. 多行 Multi-line
      3. 1.3.3. 操作 Manipulation
    4. 1.4. PHP 数组
      1. 1.4.1. 定义
      2. 1.4.2. 多阵列
      3. 1.4.3. 多类型
      4. 1.4.4. 操作
      5. 1.4.5. 索引迭代
      6. 1.4.6. 价值迭代
      7. 1.4.7. 关键迭代
      8. 1.4.8. 串联阵列
      9. 1.4.9. Into 函数
      10. 1.4.10. Splat运算符
    5. 1.5. PHP 运算符
      1. 1.5.1. 算术
      2. 1.5.2. 分配
      3. 1.5.3. 比较
      4. 1.5.4. 逻辑的
      5. 1.5.5. 算术
      6. 1.5.6. 按位
    6. 1.6. PHP 条件
      1. 1.6.1. If elseif else
      2. 1.6.2. Switch
      3. 1.6.3. 三元运算符
      4. 1.6.4. 匹配
      5. 1.6.5. 匹配表达式
    7. 1.7. PHP 循环
      1. 1.7.1. while 循环
      2. 1.7.2. do while 循环
      3. 1.7.3. for i 循环
      4. 1.7.4. break 跳出循环
      5. 1.7.5. continue 继续
      6. 1.7.6. foreach 循环
    8. 1.8. PHP 函数
      1. 1.8.1. 返回值
      2. 1.8.2. 返回类型
      3. 1.8.3. 可空返回类型
      4. 1.8.4. 无效函数
      5. 1.8.5. 变量函数
      6. 1.8.6. 匿名函数
      7. 1.8.7. 递归函数
      8. 1.8.8. 默认参数
      9. 1.8.9. 箭头函数
    9. 1.9. PHP 类
      1. 1.9.1. 构造函数 Constructor
      2. 1.9.2. 继承 Inheritance
      3. 1.9.3. 类变量 Classes variables
      4. 1.9.4. 魔术方法
      5. 1.9.5. 接口
    10. 1.10. 各种各样的
      1. 1.10.1. 基本错误处理
      2. 1.10.2. PHP 8.0 中的异常
      3. 1.10.3. 自定义异常
      4. 1.10.4. Nullsafe 运算符
      5. 1.10.5. 常用表达
      6. 1.10.6. fopen() 模式
      7. 1.10.7. 运行时定义的常量
    11. 1.11. 另见
请输入关键词进行搜索