برگهٔ تقلب PHP
مرجعی قابلجستجو و چاپ از PHP 8.3+ — نحو، رشتهها، آرایهها، توابع، کلاسها، enumها، صفتها و ویژگیهای مدرن. رایگان.
مبانی و انواع
10declare(strict_types=1);
اعمال بررسی سختگیرانه انواع اسکالر
$x = 1;
متغیرها با علامت دلار شروع میشوند
const MAX = 100;
ثابت زمان کامپایل
gettype($x)
گرفتن نوع یک مقدار
(int) $x
تبدیل به عدد صحیح
is_int($x)
تابع بررسی نوع (is_string، ...)
int|string $x
اعلان نوع union
?string $x
نوع nullable (string یا null)
$a ?? 'default'
عملگر null coalescing
$a ??= 'default'
انتساب فقط در صورت null بودن
رشتهها
11"Hello $name"
گیومه دوتایی متغیرها را درونیابی میکند
'literal $x'
گیومه تکی تحتاللفظی است
$a . $b
الحاق رشتهها
strlen($s)
طول بایتی رشته
str_contains($s, 'a')
بررسی وجود زیررشته
str_starts_with($s, 'a')
بررسی پیشوند
substr($s, 0, 3)
استخراج بخشی از رشته
str_replace('a', 'b', $s)
جایگزینی همه موارد
explode(',', $s)
تقسیم به آرایه
sprintf('%05.2f', $n)
خروجی رشته قالببندیشده
trim($s)
حذف فاصلههای اطراف
آرایهها
11$a = [1, 2, 3];
آرایه اندیسدار
$a = ['k' => 'v'];
آرایه انجمنی
array_map(fn($x) => $x * 2, $a)
تبدیل هر عنصر
array_filter($a, fn($x) => $x > 0)
نگهداشتن عناصر منطبق
array_reduce($a, $fn, 0)
کاهش به یک مقدار
in_array($v, $a, true)
بررسی سختگیرانه مقدار
array_keys($a)
گرفتن همه کلیدها
array_merge($a, $b)
ادغام آرایهها
[...$a, ...$b]
پخش/ادغام آرایهها
count($a)
تعداد عناصر
[$x, $y] = $a;
تخریبسازی آرایه
توابع
9function f(int $a): int {}
پارامترها و بازگشت نوعدار
function f(int $a = 1) {}
مقدار پیشفرض پارامتر
function f(int ...$nums) {}
پارامترهای متغیر
f(...$args)
پخش آرگومانها
f(name: 'Sam', age: 30)
آرگومانهای نامدار
$fn = fn($x) => $x + 1;
تابع پیکانی (دامنه را خودکار میگیرد)
function () use ($x) {}
closure با گرفتن یک متغیر
$fn = strlen(...);
نحو callable درجهیک
function f(): never {}
هرگز بازنمیگردد (throw یا exit)
جریان کنترل
9if ($a) {} elseif ($b) {} else {}
شاخههای شرطی
$a ? $b : $c
عبارت سهتایی
$a ?: $b
سهتایی کوتاه (جایگزین falsy)
match ($x) { 1, 2 => 'a', default => 'b' }
match سختگیرانه مبتنی بر عبارت
switch ($x) { case 1: break; }
انشعاب چندراهه ساده
foreach ($a as $k => $v) {}
پیمایش کلیدها و مقادیر
for ($i = 0; $i < 10; $i++) {}
حلقه شمارشی
while ($cond) {}
حلقه تا برقراری شرط
break / continue
خروج یا پرش از تکرار حلقه
کلاسها و OOP
10class A extends B implements C {}
وراثت و interfaceها
public function __construct(private int $id) {}
ارتقای ویژگی سازنده
public readonly string $name;
تغییرناپذیر پس از مقداردهی
public function f(): static {}
بازگشت نوع late-bound
static::create()
مقیدسازی static دیرهنگام
$obj?->method()
فراخوانی متد null-safe
abstract class A {}
مستقیماً قابل نمونهسازی نیست
trait T {} use T;
کد افقی قابلاستفاده مجدد
$obj instanceof A
بررسی نوع در زمان اجرا
A::class
رشته نام کامل کلاس
Enumها
9enum Status { case Active; case Draft; }
شمارش خالص
enum Status: string { case A = 'a'; }
enum پشتیباندار (string/int)
Status::Active
ارجاع به case یک enum
Status::from('a')
ساخت از مقدار پشتیبان
Status::tryFrom('x')
اگر نامعتبر باشد null برمیگرداند
Status::cases()
آرایه همه caseها
$status->value
مقدار پشتیبان یک case
$status->name
نام case
enum E { public function label() {} }
enumها میتوانند متد داشته باشند
مدیریت خطا
9try {} catch (Throwable $e) {}
گرفتن خطاها و استثناها
catch (TypeError | ValueError $e)
گرفتن چند نوع
catch (Exception)
catch بدون گرفتن (بدون متغیر)
finally {}
همیشه پس از try/catch اجرا میشود
throw new RuntimeException('x')
پرتاب یک استثنا
throw $e;
پرتاب مجدد استثنای گرفتهشده
$x = $v ?? throw new Error();
throw به عنوان یک عبارت
$e->getMessage()
خواندن پیام خطا
$e->getPrevious()
گرفتن استثنای زنجیرهای
صفتها و امکانات مدرن
9#[Attribute] class Route {}
اعلان صفت سفارشی
#[Route('/home')]
اعمال صفت بر یک هدف
new ReflectionClass($x)
بازرسی کلاس با reflection
$ref->getAttributes()
خواندن صفتهای اعلامشده
json_encode($data)
سریالسازی به JSON
json_decode($s, true)
رمزگشایی JSON به آرایه
array_is_list($a)
true اگر کلیدها 0..n به ترتیب باشند
str_word_count($s)
شمارش کلمات در رشته
$obj::class
نام کلاس از یک نمونه
هیچ موردی با «:q» مطابقت ندارد.
به کمک نیاز دارید؟
با این ابزار مشکلی پیدا کردید؟ به تیم ما اطلاع دهید.