TGViewer
| AmirHossein | | AmirHossein | @amirhdeveloper · 609 subscribers
Post #40 200
در رابطه با پست دیروز برخی از دوستان گفته بودند که match بدرد بخور نیست و برخلاف switch case که میشه به ازای هر case تعداد زیادی دستور اجرا کنیم در match فقط میشه تعدادی دستور محدود رو اجرا کرد، ولی خب چنین چیزی صحت نداره.
بریم با هم دیگه بررسیش بکنیم:

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

راه حل اول : داخل index های match یک anonymous functions پاس میدیم و کار هایی که میخوایم بکنیم رو داخلش می نویسیم و سپس match رو داخل یک متغییر میریزیم و متغییر رو به عنوان تابع صدا می زنیم:
$do = match (1){
1=> function (){
echo 'hello';
echo 'bye';
return null;
}
};
$do();

راه حل دوم anonymous functions رو داخل match صدا میزنیم:
match (1){
1=> (function (){
echo 'hello ';
})()
};

راه حل سوم یک تابع تعریف می کنیم و کار هایی که می خوایم بکنیم رو داخلش می نویسیم و تابع رو داخل match صدا میزنیم:
function test(){
echo 'hello ';
}

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

راه حل های بیشتری میتونه وجود داشته باشه و یک برنامه نویس خوب بهترین راه و کوتاه ترین راه رو پیدا می کنه.
در کل اومدن match داخل php دلیل بر این نیست که نباید از switch case استفاده کنیم، شما هستید که تصمیم می گیرید در چه موقعی از کدومشون استفاده کنید.
مطالب بیشتر رو از دو رفرنس زیر میتونید دنبال کنید:
داکیومنت php
تفاوت های switch case و match
.
  • 👍 5
  • 👏 1
More from @amirhdeveloper
  1. Oct 8, 2026‍ اولین نسخه‌ی «قیچی» منتشر شد! ✂️ راست‌ش چند وقتی هست که پیامک‌های تبلیغاتی و اسپم، شدیدا…
  2. Oct 7, 2026بیاید از قدرت های لاراگرام بگم لاراگرام یک full-stack و ai-ready فریمورک برای توسعه ربات ه…
  3. Sep 30, 2026پکیج LaraGram Sentinel منتشر شد؛ یک پنل مانیتورینگ که هیچ چیزی از زیر دستش در نمی‌ره! تمام…
  4. Sep 23, 2026از امروز با کاهش شدید حاکرها مواجه میشیم
  5. Sep 19, 2026🔴 سوال سوم دو Region دارید: US-East و EU-West. کاربران در هر دو Region هستند. سیستم باید…
  6. Sep 19, 2026🟠 سوال دوم فرض کنید Service A به Service B درخواست می‌زند. B به‌دلیل overload، latency با…
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 →