欢迎光临
Life Is Becoming Better

PHP 速查表

PHP 速查表

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

入门

hello.php

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

PHP 运行命令

$ php hello.php

变量 Variables

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

字符串 Strings

$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!

数组 Arrays

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

运算符 Operators

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

Include

vars.php

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

test.php

<?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

function add($num1$num2 = 1) {
    return $num1 + $num2;
} echo add(10);    # => 11 echo add(105); # => 15

注释 Comments

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

常数 Constants

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

类 Classes

class Student {
  public function __construct($name) {
      $this->name = $name;
  }
} $alex = new Student("Alex");

PHP 类型

布尔值 Boolean

$boolean1 = true; $boolean2 = TRUE; $boolean3 = false; $boolean4 = FALSE; $boolean5 = (boolean1;   # => true $boolean6 = (boolean0;   # => false

布尔值不区分大小写

整数 Integer

$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;

字符串 Strings

echo 'this is a simple string';

数组 Arrays

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

浮点数 Float (Double)

$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

$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

function bar(): iterable {
  return [123];
} function gen(): iterable {
  yield 1;
  yield 2;
  yield 3;
} foreach (bar() as $value) {
  echo $value;   # => 123

PHP 字符串

字符串 String

# => '$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

$str = "foo"; // 未插值的多行 $nowdoc = <<<'END'
Multi line string
$str
END; // 将执行字符串插值 $heredoc = <<<END
Multi line $str END;

操作 Manipulation

$s = "Hello Phper"; echo strlen($s);       # => 11 echo substr($s03); # => Hel echo substr($s1);    # => ello Phper echo substr($s, -43);# => hpe echo strtoupper($s);   # => HELLO PHPER echo strtolower($s);   # => hello phper echo strpos($s"l");      # => 2 var_dump(strpos($s"L")); # => false

PHP 数组

定义

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

混合 int 和 string 键

$array = array(
    "foo" => "bar",
    "bar" => "foo",
    100   => -100,
    -100  => 100,
); var_dump($array);

短数组语法

$array = [
    "foo" => "bar",
    "bar" => "foo",
];

多阵列

$multiArray = [ 
    [123],
    [456],
    [789],
]; print_r($multiArray[0][0]) # => 1 print_r($multiArray[0][1]) # => 2 print_r($multiArray[0][2]) # => 3

多类型

$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"]);

操作

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

索引迭代

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

价值迭代

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

关键迭代

$arr = ["foo" => "bar""bar" => "foo"]; foreach ( $arr as $key => $value )
{
    echo "key: " . $key . "\n";
    echo "val: {$arr[$key]}\n";
}

串联阵列

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

Into 函数

$array = [12]; function foo(int $aint $b) {
  echo $a# => 1     echo $b# => 2 } foo(...$array);

Splat运算符

function foo($first, ...$other) {
  var_dump($first); # => a     var_dump($other); # => ['b', 'c'] } foo('a''b''c' /*, ...*/ ); // 或 function foo($firststring ...$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 独家或
! 不是
&&
|| 或者

算术

// 算术 $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

$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

$x = 0; switch ($x) {
    case '0':
        print "it's zero";
        break; 
    case 'two':
    case 'three':
        // do something         break;
    default:
        // do something }

三元运算符

# => 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';

匹配

$statusCode = 500; $message = match($statusCode) {
  200300 => null,
  400 => '未找到',
  500 => '服务器错误',
  default => '已知状态码',
}; echo $message# => 服务器错误

匹配表达式

$age = 23; $result = match (true) {
    $age >= 65 => 'senior',
    $age >= 25 => 'adult',
    $age >= 18 => 'young adult',
    default => 'kid',
}; echo $result# => young adult

PHP 循环

while 循环

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

do while 循环

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

for i 循环

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

break 跳出循环

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

continue 继续

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

foreach 循环

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

PHP 函数

返回值

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

返回类型

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

可空返回类型

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

无效函数

// 在 PHP 7.1 中可用 function voidFunction(): void {
  echo 'Hello';
  return;
} voidFunction();  # => Hello

变量函数

function bar($arg = '')
{
    echo "In bar(); arg: '$arg'.\n";
} $func = 'bar'; $func('test'); # => In bar(); arg: test

匿名函数

$greet = function($name)
{
    printf("Hello %s\r\n"$name);
}; $greet('World'); # => Hello World $greet('PHP');   # => Hello PHP

递归函数

function recursion($x)
{
    if ($x < 5) {
        echo "$x";
        recursion($x + 1);
    }
} recursion(1);  # => 1234

默认参数

function coffee($type = "cappuccino")
{
    return "Making a cup of $type.\n";
} # => 制作一杯卡布奇诺 echo coffee(); # => 制作一杯 echo coffee(null); # => 制作一杯浓缩咖啡 echo coffee("espresso");

箭头函数

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

PHP 类

构造函数 Constructor

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

class ExtendClass extends SimpleClass {
    // 重新定义父方法     function displayVar()
    {
        echo "Extending class\n";
        parent::displayVar();
    }
} $extended = new ExtendClass(); $extended->displayVar();

类变量 Classes variables

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';  
}

静态访问

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

魔术方法

class MyClass {
    // 对象被视为字符串     public function __toString()
    {
        return $property;
    }
    // 与 __construct() 相反     public function __destruct()
    {
        print "Destroying";
    }
}

接口

interface Foo 
{
    public function doSomething();
} interface Bar {
    public function doSomethingElse();
} class Cls implements FooBar 
{
    public function doSomething() {}
    public function doSomethingElse() {}
}

各种各样的

基本错误处理

try {
    // 做一点事catch (Exception $e) {
    // 处理异常finally {
    echo "Always print!";
}

PHP 8.0 中的异常

$nullableValue = null; try {
  $value = $nullableValue ?? throw new InvalidArgumentException();
} catch (InvalidArgumentException) { // 变量是可选的     // 处理我的异常     echo "print me!";
}

自定义异常

class MyException extends Exception {
    // 做一点事 }

用法

try {
    $condition = true;
    if ($condition) {
        throw new MyException('bala');
    }
} catch (MyException $e) {
    // 处理我的异常 }

Nullsafe 运算符

// 从 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;
    }
}

常用表达

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

fopen() 模式

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

运行时定义的常量

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; 

未经允许不得转载:Donghy的博客 » PHP 速查表

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址