TGViewer
| کانال توسعه‌دهندگان PHP | | کانال توسعه‌دهندگان PHP | @developixphp · 1.68K subscribers
Post #45 871
در PHP، عبارت match یک قابلیت نسبتاً جدید است که اولین بار در نسخه 8.0 معرفی شد. این عبارت برای جایگزینی ساختار switch استفاده می‌شود و به شما امکان می‌دهد مقادیر را به صورت اختصاصی مقایسه کنید.

در استفاده از match مقادیر را بر اساس === مقایسه می‌کند، در حالی که switch از مقایسه == استفاده می‌کند. این به این معناست که match دقیق‌تر است و تبدیل‌های خودکار نوع را انجام نمی‌دهد.
هر شاخه در match می‌تواند مستقیماً یک مقدار را برگرداند و نیازی به استفاده از return یا break نیست.

مثال:
$statusCode = 404;

$result = match ($statusCode) {
200, 201 => "OK",
301, 302 => "Redirect",
404 => "Not Found",
500 => "Server Error",
default => "Unknown status code"
};

echo $result; // Outputs: Not Found


در این مثال، یک متغیر به نام $statusCode داریم که مقدار آن 404 است. این مقدار نشان‌دهنده یک کد وضعیت HTTP است که معمولاً برای صفحاتی که یافت نشده‌اند به کار می‌رود. زمانی که $statusCode با یکی از کلید ها برابر باشد مقدار آن را بر میگرداند، و زمانی که با هیچ یک از کلید ها برابر نباشد مقدار default را بر می گرداند.

خروجی match را میتوان در لحظه return, echo یا درون متغییر ریخت:
return match ($statusCode) {
// ...
};

echo match ($statusCode) {
// ...
};

$result = match ($statusCode) {
// ...
};


بر خلاف switch-case که میتوان چندین خط را برای هر یک از حالات اجرا کرد در match تنها یک عمل قابل اجرا است:
switch (1){
case 1:
$a = 10;
$b = 20;
$c = 30;
echo 'hello';
echo 'bye';
return null;
}

match (1) {
1 => 'hello'
};


همانطور که می بینید 6 عمل درون switch-case اجرا شده، اما در match تنها یک خط قابل نوشتن است، اما چندین راه وجود دارد که در match چندین عمل را اجرا کنید.

1- می توانید برای هر حالت یک کلوژر بنویسید و خروجی match را درون متغییر بریزید و آن را اجرا کنید:
$do = match (1){
1=> function (){
echo 'hello';
echo 'bye';
return null;
}
};
$do();



2- میتوانید کلوژر را مستقیما درون match اجرا کنید:
match (1){
1=> (function (){
echo 'hello';
echo 'bye';
return null;
})()
};


3- می توانید یک تابع بنویسید و آن را به match بدهید:
function test(){
echo 'hello';
echo 'bye';
return null;
}

$do = match (1){
1=> test()
};


در نهایت match یک ابزار قدرتمند و مدرن برای جایگزینی switch در PHP است که به شما امکان می‌دهد کد خود را دقیق‌تر و خواناتر بنویسید.

👤 AmirHossein

💎 Channel: @DevelopixPHP
  • 🔥 12
  • 👍 3
  • ❤ 1
More from @developixphp
  1. Sep 26, 2026این کد موقع اجرا چه خروجی‌ای می‌ده و مشکلش کجاست؟ 🔖 #PHP #پی_اچ_پی 👤 Developix 💎 Channe…
  2. Sep 25, 2026🔥 پکیج: قراردادهای ترجمه سیمفونی اگر کد PHP را برای چندزبانگی می‌نویسید، بهتر است منطق بر…
  3. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
  4. Sep 11, 2026ارسال ایمیل تأیید ثبت‌نام، بازیابی رمز عبور یا نوتیفیکیشن سفارش، تقریباً توی هر پروژه‌ PHP…
  5. Sep 10, 2026برنامه نویسی سوکت در PHP بخش اول عبارت دیگر در ارتباط های غیر سوکت برای ارسال یک پالس از س…
  6. Aug 31, 2026🔥 پکیج: استاندارد PSR-11 برای Container استاندارد PSR-11 فقط یه interface مشترک برای Cont…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →