PHP Cheat Sheet - 快速参考指南,收录常用语法、命令与实践。
<?php // begin with a PHP open tag.
echo "Hello World\n";
print("Hello cheatsheets.zip");
?>
PHP run command
$ php hello.php
$boolean1 = true;
$boolean2 = True;
$int = 12;
$float = 3.1415926;
unset($float); // Delete variable
$str1 = "How are you?";
$str2 = 'Fine, thanks';
See: Types
$url = "cheatsheets.zip";
echo "I'm learning PHP at $url";
// Concatenate strings
echo "I'm learning PHP at " . $url;
$hello = "Hello, ";
$hello .= "World!";
echo $hello; # => Hello, World!
See: Strings
$num = [1, 3, 5, 7, 9];
$num[5] = 11;
unset($num[2]); // Delete variable
print_r($num); # => 1 3 7 9 11
echo count($num); # => 5
See: Arrays
$x = 1;
$y = 2;
$sum = $x + $y;
echo $sum; # => 3
See: Operators
<?php // begin with a PHP open tag.
$fruit = 'apple';
echo "I was imported";
return 'Anything you like.';
?>
<?php
include 'vars.php';
echo $fruit . "\n"; # => apple
/* Same as include,
cause an error if cannot be included*/
require 'vars.php';
// Also works
include('vars.php');
require('vars.php');
// Include through HTTP
include 'http://x.com/file.php';
// Include and the return statement
$result = include 'vars.php';
echo $result; # => Anything you like.
?>
function add($num1, $num2 = 1) {
return $num1 + $num2;
}
echo add(10); # => 11
echo add(10, 5); # => 15
See: Functions
# This is a one line shell-style comment
// This is a one line c++ style comment
/* This is a multi line comment
yet another line of comment */
const MY_CONST = "hello";
echo MY_CONST; # => hello
# => MY_CONST is: hello
echo 'MY_CONST is: ' . MY_CONST;
class Student {
public function __construct($name) {
$this->name = $name;
}
}
$alex = new Student("Alex");
See: Classes
$boolean1 = true;
$boolean2 = TRUE;
$boolean3 = false;
$boolean4 = FALSE;
$boolean5 = (boolean) 1; # => true
$boolean6 = (boolean) 0; # => false
Boolean are case-insensitive
$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;
See also: Integers
echo 'this is a simple string';
See: Strings
$arr = array("hello", "world", "!");
See: Arrays
$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
$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
function bar(): iterable {
return [1, 2, 3];
}
function gen(): iterable {
yield 1;
yield 2;
yield 3;
}
foreach (bar() as $value) {
echo $value; # => 123
}
# => '$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';
$str = "foo";
// Uninterpolated multi-liners
$nowdoc = <<<'END'
Multi line string
$str
END;
// Will do string interpolation
$heredoc = <<<END
Multi line
$str
END;
$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
See: String Functions
$a1 = ["hello", "world", "!"]
$a2 = array("hello", "world", "!");
$a3 = explode(",", "apple,pear,peach");
$array = array(
"foo" => "bar",
"bar" => "foo",
100 => -100,
-100 => 100,
);
var_dump($array);
$array = [
"foo" => "bar",
"bar" => "foo",
];
$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
$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 => 1, 12 => 2);
$arr[] = 56; // Append
$arr["x"] = 42; // Add with key
sort($arr); // Sort
unset($arr[5]); // Remove
unset($arr); // Remove all
See: Array Functions
$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 = [1, 2];
$b = [3, 4];
// PHP 7.4 later
# => [1, 2, 3, 4]
$result = [...$a, ...$b];
$array = [1, 2];
function foo(int $a, int $b) {
echo $a; # => 1
echo $b; # => 2
}
foo(...$array);
function foo($first, ...$other) {
var_dump($first); # => a
var_dump($other); # => ['b', 'c']
}
foo('a', 'b', 'c' /*, ...*/ );
// or
function foo($first, string ...$other){}
| - | - |
|---|---|
+ | Addition |
- | Subtraction |
* | Multiplication |
/ | Division |
% | Modulo |
** | Exponentiation |
| - | - |
|---|---|
a += b | Same as a = a + b |
a -= b | Same as a = a – b |
a *= b | Same as a = a * b |
a /= b | Same as a = a / b |
a %= b | Same as a = a % b |
| - | - |
|---|---|
== | Equal |
=== | Identical |
!= | Not equal |
<> | Not equal |
!== | Not identical |
< | Less than |
> | Greater than |
<= | Less than or equal |
>= | Greater than or equal |
<=> | Less than/equal/greater than |
| - | - |
| ----- | ------------ | --- | --- |
| and | And |
| or | Or |
| xor | Exclusive or |
| ! | Not |
| && | And |
| | | | Or |
// Arithmetic
$sum = 1 + 1; // 2
$difference = 2 - 1; // 1
$product = 2 * 2; // 4
$quotient = 2 / 1; // 2
// Shorthand arithmetic
$num = 0;
$num += 1; // Increment $num by 1
echo $num++; // Prints 1 (increments after evaluation)
echo ++$num; // Prints 3 (increments before evaluation)
$num /= $float; // Divide and assign the quotient to $num
| - | - |
| ---- | ------------------ | ----------------- |
| & | And |
| | | Or (inclusive or) |
| ^ | Xor (exclusive or) |
| ~ | Not |
| << | Shift left |
| >> | Shift right |
$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";
}
$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 unset
echo $a ?? 'a is unset';
# => print
echo $b ?? 'b is unset';
$statusCode = 500;
$message = match($statusCode) {
200, 300 => null,
400 => 'not found',
500 => 'server error',
default => 'known status code',
};
echo $message; # => server error
See: Match
$age = 23;
$result = match (true) {
$age >= 65 => 'senior',
$age >= 25 => 'adult',
$age >= 18 => 'young adult',
default => 'kid',
};
echo $result; # => young adult
$i = 1;
# => 12345
while ($i <= 5) {
echo $i++;
}
$i = 1;
# => 12345
do {
echo $i++;
} while ($i <= 5);
# => 12345
for ($i = 1; $i <= 5; $i++) {
echo $i;
}
# => 123
for ($i = 1; $i <= 5; $i++) {
if ($i === 4) {
break;
}
echo $i;
}
# => 1235
for ($i = 1; $i <= 5; $i++) {
if ($i === 4) {
continue;
}
echo $i;
}
$a = ['foo' => 1, 'bar' => 2];
# => 12
foreach ($a as $k) {
echo $k;
}
See: Array iteration
function square($x)
{
return $x * $x;
}
echo square(4); # => 16
// Basic return type declaration
function sum($a, $b): float {/*...*/}
function get_item(): string {/*...*/}
class C {}
// Returning an object
function getC(): C { return new C; }
// Available in PHP 7.1
function nullOrString(int $v) : ?string
{
return $v % 2 ? "odd" : null;
}
echo nullOrString(3); # => odd
var_dump(nullOrString(4)); # => NULL
See: Nullable types
// Available in 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";
}
# => Making a cup of cappuccino.
echo coffee();
# => Making a cup of .
echo coffee(null);
# => Making a cup of espresso.
echo coffee("espresso");
$y = 1;
$fn1 = fn($x) => $x + $y;
// equivalent to using $y by value:
$fn2 = function ($x) use ($y) {
return $x + $y;
};
echo $fn1(5); # => 6
echo $fn2(5); # => 6
class Student {
public function __construct($name) {
$this->name = $name;
}
public function print() {
echo "Name: " . $this->name;
}
}
$alex = new Student("Alex");
$alex->print(); # => Name: Alex
class ExtendClass extends SimpleClass
{
// Redefine the parent method
function displayVar()
{
echo "Extending class\n";
parent::displayVar();
}
}
$extended = new ExtendClass();
$extended->displayVar();
class MyClass
{
const MY_CONST = 'value';
static $staticVar = 'static';
// Visibility
public static $var1 = 'pubs';
// Class only
private static $var2 = 'pris';
// The class and subclasses
protected static $var3 = 'pros';
// The class and subclasses
protected $var6 = 'pro';
// The class only
private $var7 = 'pri';
}
Access statically
echo MyClass::MY_CONST; # => value
echo MyClass::$staticVar; # => static
class MyClass
{
// Object is treated as a String
public function __toString()
{
return $property;
}
// opposite to __construct()
public function __destruct()
{
print "Destroying";
}
}
interface Foo
{
public function doSomething();
}
interface Bar
{
public function doSomethingElse();
}
class Cls implements Foo, Bar
{
public function doSomething() {}
public function doSomethingElse() {}
}
// Declare Trait allows reuse of code
// across multiple classes for common characteristics or use cases
<?php
trait Logger {
public function log($message) {
$date = new DateTime();
echo "| ". $date->format('Y-m-d H:i:s') . " | " . $message;
}
}
// Use case :
// Call trait with "use <trait name> in Class"
class User {
use Logger;
public function createUser() {
// User creation logic
$this->log("User created.");
}
}
class Product {
use Logger;
public function createProduct() {
// Product creation logic
$this->log("Product created.");
}
}
$user = new User();
$user->createUser(); // Output ex: | 2025-06-18 14:06:09 | User created.
$product = new Product();
$product->createProduct(); // Output ex: | 2025-06-18 14:06:09 | Product created.
<?php
// enum is a data type that allows you to define a set of named constants,
// representing a fixed group of related values
enum Status {
case Pending;
case Approved;
case Rejected;
}
// Use case
function getStatusMessage(Status $status): string {
return match($status) {
Status::Pending => "Waiting for approval.",
Status::Approved => "Your request has been approved.",
Status::Rejected => "Your request has been rejected.",
};
}
$currentStatus = Status::Approved;
echo getStatusMessage($currentStatus); // Output : Your request has been approved.
// DateTime in PHP handles both date and time
<?php
$now = new DateTime();
echo $now->format('Y-m-d H:i:s.u');
// Output ex: 2024-04-27 14:35:22.123456
<?php
// Create a date object
$d = new DateTime('2024-04-27');
echo $d->format('Y-m-d');
// Output : 2024-04-27
// Create a time object
$t = new DateTime('15:30:45');
echo $t->format('H:i:s');
// Output : 15:30:45
// Create a datetime object
$dt = new DateTime('2024-04-27 15:30:45');
echo $dt->format('Y-m-d H:i:s');
// Output : 2024-04-27 15:30:45
<?php
// Convert a string to a DateTime object
$date_str = "2024-04-27 14:00";
$dt_obj = new DateTime($date_str);
echo $dt_obj->format('Y-m-d H:i:s');
// Output : 2024-04-27 14:00:0027
// Convert a DateTime object to a string
$formatted_str = $dt_obj->format('d/m/Y H:i');
echo $formatted_str;
// Output : 27/04/2024 14:00
<?php
// Get current timestamp
$timestamp = time();
echo $timestamp;
// Output ex: 1750253583
// Convert timestamp back to DateTime
$dt_from_timestamp = (new DateTime())->setTimestamp($timestamp);
echo $dt_from_timestamp->format('Y-m-d H:i:s');
// Output ex : 2025-06-18 13:33:03
<?php
$date1 = new DateTime('2024-04-27');
$date2 = new DateTime('2024-05-01');
$interval = $date1->diff($date2);
echo $interval->days;
// Output : 4
// Using DateInterval for date arithmetic
$new_date = clone $date1;
$new_date->add(new DateInterval('P10D'));
echo $new_date->format('Y-m-d');
// Output : 2024-05-07
try {
// Do something
} catch (Exception $e) {
// Handle exception
} finally {
echo "Always print!";
}
$nullableValue = null;
try {
$value = $nullableValue ?? throw new InvalidArgumentException();
} catch (InvalidArgumentException) { // Variable is optional
// Handle my exception
echo "print me!";
}
class MyException extends Exception {
// do something
}
Usage
try {
$condition = true;
if ($condition) {
throw new MyException('bala');
}
} catch (MyException $e) {
// Handle my exception
}
// As of PHP 8.0.0, this line:
$result = $repo?->getUser(5)?->name;
// Equivalent to the following code:
if (is_null($repo)) {
$result = null;
} else {
$user = $repository->getUser(5);
if (is_null($user)) {
$result = null;
} else {
$result = $user->name;
}
}
See also: Nullsafe Operator
$str = "Visit cheatsheets.zip";
echo preg_match("/ch/i", $str); # => 1
See: Regex in PHP
| - | - |
|---|---|
r | Read |
r+ | Read and write, prepend |
w | Write, truncate |
w+ | Read and write, truncate |
a | Write, append |
a+ | Read and write, append |
| Variable | Description |
|---|---|
$_SERVER | Holds information about headers, paths, and script locations |
$_GET | Contains data sent via URL parameters (query string) |
$_POST | Contains data sent via HTTP POST method |
$_FILES | Contains information about uploaded files |
$_COOKIE | Contains cookie data |
$_SESSION | Stores session variables |
$_REQUEST | Contains data from $_GET, $_POST, and $_COOKIE |
$_ENV | Contains environment variables |
$GLOBALS | References all global variables available in the script |
{.left-text}
Super Global Variables are built-in variables always available in all scopes.
define("CURRENT_DATE", date('Y-m-d'));
// One possible representation
echo CURRENT_DATE; # => 2021-01-05
# => CURRENT_DATE is: 2021-01-05
echo 'CURRENT_DATE is: ' . CURRENT_DATE;
地址
Level 10b, 144 Edward Street, Brisbane CBD(Headquarter)Level 2, 171 La Trobe St, Melbourne VIC 3000四川省成都市武侯区桂溪街道天府大道中段500号D5东方希望天祥广场B座45A13号Business Hub, 155 Waymouth St, Adelaide SA 5000Disclaimer
JR Academy acknowledges Traditional Owners of Country throughout Australia and recognises the continuing connection to lands, waters and communities. We pay our respect to Aboriginal and Torres Strait Islander cultures; and to Elders past and present. Aboriginal and Torres Strait Islander peoples should be aware that this website may contain images or names of people who have since passed away.
匠人学院网站上的所有内容,包括课程材料、徽标和匠人学院网站上提供的信息,均受澳大利亚政府知识产权法的保护。严禁未经授权使用、销售、分发、复制或修改。违规行为可能会导致法律诉讼。通过访问我们的网站,您同意尊重我们的知识产权。 JR Academy Pty Ltd 保留所有权利,包括专利、商标和版权。任何侵权行为都将受到法律追究。查看用户协议
© 2017-2025 JR Academy Pty Ltd. All rights reserved.
ABN 26621887572