PHP

پی‌اچ‌پی از صفر تا برنامه‌نویس

از اولین echo تا تسلط کامل بر زبانِ پی‌اچ‌پی ۸٫۲ — همان زبانی که هر فریم‌ورک رویش ساخته شده، با تمرین‌های زنده‌ای که داورِ واقعی روی CLI می‌سنجد.

۱۶۸درس
۱۴۰تمرین
۳۴ساعت
۹۴٪رضایت
مشاهده‌ی سرفصل‌ها
درباره‌ی دوره

چه چیزی یاد می‌گیری؟

پی‌اچ‌پی از صفر تا برنامه‌نویس

از همان اولین خطِ echo شروع می‌کنی و گام‌به‌گام به یک برنامه‌نویسِ واقعیِ پی‌اچ‌پی تبدیل می‌شوی. این دوره خودِ زبان را یاد می‌دهد — نه یک فریم‌ورک، نه یک وب‌سایت — بلکه همان هسته‌ای که لاراول و سیمفونی و وردپرس همگی رویش بنا شده‌اند. هر چیزی که اینجا یاد می‌گیری، پایه‌ی هر کاری است که بعداً با پی‌اچ‌پی خواهی کرد. تمرکزِ ما روی پی‌اچ‌پیِ مدرنِ ۸٫۲ است: پراپرتی‌های نوع‌دار، match، enum، readonly، آرگومان‌های نام‌دار، عملگرِ ?->، توابعِ پیکانی و کلاهِ تایپِ امروزی — و روی دو نقطه‌قوّتِ واقعیِ پی‌اچ‌پی: آرایه‌ی انجمنی و کتابخانه‌ی استانداردِ غول‌آسای رشته و آرایه. همه‌چیز زنده روی CLI با خروجیِ کنسول سنجیده می‌شود.

چه یاد می‌گیری؟

  • مدلِ اجرا، تگ‌های <?php، و قراردادِ خروجی (echo/print و دام‌هایشان)
  • متغیرها، نوع‌ها و جادوی نوع (== در برابر === و دام‌های مقایسه‌ی شل)
  • رشته‌ها و کتابخانه‌ی عظیمِ رشته: درون‌یابی، heredoc/nowdoc، sprintf، و دامِ «strlen بایت می‌شمارد»
  • اعداد و ریاضی، با خروجیِ دقیقِ اعشاری
  • آرایه‌ها و جعبه‌ابزارِ آرایه (array_map/filter/reduce/usort/array_column/array_combine…) — نقطه‌قوّتِ اصلیِ زبان، با بیشترین تعدادِ درس
  • کنترلِ جریان، حلقه‌ها و match
  • توابع: مقدارِ پیش‌فرض، آرگومانِ متغیر و نام‌دار، ارجاع، و اعلانِ نوعِ پارامتر و بازگشت
  • بستارها (closures)، توابعِ پیکانی و callable‌های دستِ‌اول
  • شیءگرایی در سه ماژول: کلاس‌ها، promotion، وراثت، رابط‌ها، trait، فضاهای‌نام و متدهای جادویی
  • enum (۸٫۱)، پراپرتیِ readonly و نوع‌دار
  • استثناها، مولدها (yield)، و عباراتِ باقاعده (regex) با /u فارسی
  • JSON به‌عنوانِ ابزارِ استانداردِ خروجیِ ساختاریافته، و پی‌اچ‌پیِ تابعی و ناوردایی
  • دام‌ها و اصطلاحاتِ حرفه‌ای + دو ماژولِ پروژه‌ی واقعیِ کنسولی

برای چه کسی؟

برای کسی که می‌خواهد واقعاً برنامه‌نویسِ پی‌اچ‌پی شود — چه تازه‌کارِ کاملی که از صفر شروع می‌کند، چه کسی که با پی‌اچ‌پی کدِ کپی‌پیست‌شده زده ولی هیچ‌وقت خودِ زبان را عمیق یاد نگرفته. هیچ پیش‌نیازی لازم نیست؛ از ساده‌ترین مفهوم شروع می‌کنیم.

چرا این دوره؟

هر درس مستقیماً در محیطِ کدنویسیِ تعاملی روی پی‌اچ‌پی ۸٫۲ CLI اجرا و توسط داورِ واقعی (مقایسه‌ی خروجیِ استاندارد، بدونِ اینترنت) ارزیابی می‌شود. دام‌های مشهور — == در برابر ===، کپی‌برداریِ کپی‌-هنگام‌نوشتنِ آرایه، «strlen بایت می‌شمارد»، مرتب‌سازیِ پیش‌فرضِ رشته‌ای — هرکدام یک درسِ عمدی هستند، نه یک پاورقی. لایه‌ی وب (سوپرگلوبال‌ها، header، سشن، کوکی، خروجیِ HTML)، دیتابیس، Composer و فریم‌ورک‌ها عمداً بیرونِ دامنه‌اند تا اینجا روی تسلطِ کاملِ خودِ زبان و کتابخانه‌ی استاندارد تمرکز کنیم — همان چیزی که همه‌ی آن لایه‌ها رویش ساخته می‌شوند.

۲۴ سرفصل ساخت‌یافته
۱۴۰ تمرین عملی
اجرا و بازخورد آنی در مرورگر
گواهی پایان دوره
ساخته‌ی تیم آموزشی دینا کد

این دوره را تیم آموزشی دینا کد طراحی کرده — با تمرکز بر «یادگیری با انجام‌دادن»: هر مفهوم با تمرین عملی و داوری خودکار که کدت را همان لحظه می‌سنجد، و سرفصل‌هایی که بر پایه‌ی مسیر واقعی یک برنامه‌نویس چیده شده‌اند.

سرفصل‌ها

سرفصل‌های دوره

۲۴ سرفصل · ۱۶۸ درس · ۱۴۰ تمرین

۱

سلام پی‌اچ‌پی: مدلِ اجرا و قراردادِ خروجی

۷ درس
  • پی‌اچ‌پی چیست و این دوره چطور می‌سنجد؟پیش‌نمایش رایگان
  • اولین echoپیش‌نمایش رایگانتمرین
  • echo با چند آرگومان و خطِ جدیدپیش‌نمایش رایگانتمرین
  • دامِ شماره‌یک: echo دقیقاً چه چاپ می‌کند؟پیش‌نمایش رایگان
  • true و 3.0 را چاپ کنپیش‌نمایش رایگانتمرین
  • واژه‌های true/false/NULL با var_exportپیش‌نمایش رایگانتمرین
  • کامنت‌ها و قانونِ قطعی‌بودنپیش‌نمایش رایگان
۲

متغیرها، نوع‌ها و ثابت‌ها

۶ درس
  • متغیرها و انتسابپیش‌نمایش رایگانتمرین
  • هشت نوعِ پی‌اچ‌پیپیش‌نمایش رایگان
  • gettype و get_debug_typeپیش‌نمایش رایگانتمرین
  • تبدیلِ نوع و خانواده‌ی intvalپیش‌نمایش رایگانتمرین
  • ثابت‌ها: const و defineپیش‌نمایش رایگانتمرین
  • is_* و بررسیِ نوعتمرین
۳

★ عملگرها، جادوی نوع و مقایسه

۷ درس
  • عملگرهای حسابی و intdivتمرین
  • الحاقِ رشته با نقطهتمرین
  • == در برابر === : قلبِ دام‌های پی‌اچ‌پی
  • جدولِ مقایسه‌ی شل و تغییرِ پی‌اچ‌پی ۸تمرین
  • صدق و کذب: جدولِ falsyتمرین
  • عملگرهای منطقی و ??تمرین
  • عملگرِ سه‌گانه و فضاپیماتمرین
۴

★ رشته‌ها و جعبه‌ابزارِ رشته

۱۲ درس
  • چهار سبکِ نوشتنِ رشته
  • درون‌یابیِ متغیرتمرین
  • heredoc و nowdocتمرین
  • دامِ بزرگ: strlen بایت می‌شمارد، نه کاراکتر
  • طول، اندیس و iconv_strlenتمرین
  • جست‌وجو: strpos و str_containsتمرین
  • برش و جایگزینیتمرین
  • حروف، trim و تکرار (دامِ ASCII)تمرین
  • explode و implodeتمرین
  • قالب‌بندی: sprintf و number_formatتمرین
  • ord، chr، strrev و ctype_*تمرین
  • گردشِ کد: ابزارِ slugifyتمرین
۵

اعداد و ریاضی

۶ درس
  • int، float و دامِ برابریِ اعشاری
  • round، ceil، floor، absتمرین
  • مقایسه‌ی اعشاری با epsilonتمرین
  • pow، sqrt، fmod و fdivتمرین
  • تبدیلِ مبنا و number_formatتمرین
  • NAN، INF و تقسیم بر صفرتمرین
۶

کنترلِ جریان، حلقه‌ها و match

۷ درس
  • if، elseif، else و عملگرِ سه‌گانهتمرین
  • switch و دامِ fallthrough
  • match: جایگزینِ مدرنِ switchتمرین
  • while و do-whileتمرین
  • for و foreachتمرین
  • break و continue با سطحتمرین
  • FizzBuzzتمرین
۷

★ آرایه‌ها I: ساختار و دسترسی

۸ درس
  • آرایه = نقشه‌ی مرتب
  • آرایه‌ی اندیسی و افزودن با []تمرین
  • آرایه‌ی انجمنی و درهم‌کشیِ کلیدتمرین
  • آرایه‌های تودرتو و چندبعدیتمرین
  • واکافت (destructuring) و جابه‌جاییتمرین
  • بازرسی: count، isset، in_arrayتمرین
  • دامِ ارجاع در foreach
  • اصلاحِ آرایه با foreach ارجاعیتمرین
۸

★ آرایه‌ها II: جعبه‌ابزارِ کامل

۱۲ درس
  • کلیدها، مقادیر، flip و combineتمرین
  • array_mapتمرین
  • array_filter و دامِ کلیدتمرین
  • array_reduceتمرین
  • برش و قطعه: slice، splice، chunkتمرین
  • array_merge در برابر عملگرِ +
  • ادغام و spreadتمرین
  • مرتب‌سازیِ ساده: sort، asort، ksortتمرین
  • usort با مقایسه‌گرِ سفارشیتمرین
  • عملیاتِ مجموعه‌ای: unique، diff، intersectتمرین
  • پشته، صف و تجمیعتمرین
  • گردشِ کد: گزارشِ گروه‌بندی‌شدهتمرین
۹

★ توابع

۷ درس
  • تعریف، پارامتر و بازگشتتمرین
  • اعلانِ نوع و strict_types
  • توابعِ نوع‌دارتمرین
  • مقدارِ پیش‌فرض و آرگومانِ متغیرتمرین
  • آرگومان‌های نام‌دار و spread در فراخوانیتمرین
  • پارامترِ ارجاعی و متغیرِ staticتمرین
  • نوع‌های union، mixed، never و voidتمرین
۱۰

★ بستارها، توابعِ پیکانی و callable

۶ درس
  • تابع به‌عنوانِ مقدار
  • بستار و use (مقدار در برابرِ ارجاع)تمرین
  • توابعِ پیکانی fn()تمرین
  • بستار به‌عنوانِ callback‌ِ آرایهتمرین
  • callable‌های دستِ‌اول f(...)تمرین
  • __invoke و Closure::bindتمرین
۱۱

★ شیءگرایی I: کلاس‌ها و اشیاء

۷ درس
  • چرا شیءگرایی؟
  • کلاس، new و متدتمرین
  • دیدپذیری: public، protected، privateتمرین
  • ارتقای سازنده (constructor promotion)تمرین
  • پراپرتیِ نوع‌دار و readonlyتمرین
  • پراپرتی و متدِ staticتمرین
  • ثابت‌های کلاس و cloneتمرین
۱۲

★ شیءگرایی II: وراثت، رابط، trait و فضای‌نام

۸ درس
  • وراثت و parentتمرین
  • کلاس‌های انتزاعیتمرین
  • رابط‌ها و چندریختی
  • پیاده‌سازیِ رابطتمرین
  • رابط‌های ازپیش‌تعریف‌شدهتمرین
  • trait و حلِ تعارضتمرین
  • فضاهای‌نام (namespace)تمرین
  • گردشِ کد: سلسله‌مراتبِ اشکالتمرین
۱۳

متدهای جادویی

۶ درس
  • متدهای جادویی چیستند؟
  • ‎__toString‎ و Stringableتمرین
  • ‎__get‎ و ‎__set‎تمرین
  • ‎__call‎ و ‎__callStatic‎تمرین
  • ‎__invoke‎: شیءِ صداپذیرتمرین
  • گردشِ کد: شیءِ مجموعه با ArrayAccessتمرین
۱۴

★ enum، readonly و نوع‌های مدرنِ ۸٫۲

۶ درس
  • چرا enum به‌جای ثابتِ کلاس؟
  • enumِ خالصتمرین
  • enumِ پشتیبان‌دار و from/tryFromتمرین
  • متد و رابط در enumتمرین
  • کلاسِ readonly و new در مقداردهیِ اولیهتمرین
  • نوع‌های DNF و standaloneِ ۸٫۲تمرین
۱۵

★ استثناها و مدیریتِ خطا

۶ درس
  • سلسله‌مراتبِ Throwable
  • try، catch، finallyتمرین
  • throw، catch‌ِ چندگانه و غیرگیرندهتمرین
  • تقسیم بر صفر و خطاهای داخلیتمرین
  • استثنای سفارشی و زنجیره‌سازیتمرین
  • اعتبارسنجیِ ورودی با استثناتمرین
۱۶

★ مولدها و ایترِیتورها

۶ درس
  • yield و ارزیابیِ تنبل
  • اولین مولدتمرین
  • yield key => value و yield fromتمرین
  • دنباله‌ی بی‌نهایتِ کرانه‌دارتمرین
  • ساختارهای SPLتمرین
  • Iterator و IteratorAggregateتمرین
۱۷

★ عباراتِ باقاعده (Regex)

۷ درس
  • regex چیست و چرا پرچمِ /u مهم است؟
  • preg_match و گروه‌هاتمرین
  • preg_match_all و ترتیب‌هاتمرین
  • preg_replace و callbackتمرین
  • preg_split و preg_quoteتمرین
  • گروه‌های نام‌دار و lookaroundتمرین
  • گردشِ کد: موتورِ قالبِ {{name}}تمرین
۱۸

JSON و شکل‌دهیِ داده

۶ درس
  • json_encode و فارسیتمرین
  • json_decode: آرایه در برابرِ شیءتمرین
  • JSON_THROW_ON_ERROR و JsonSerializableتمرین
  • اصطلاحِ «کدکردن برای ارزیابی»
  • خواننده و ادغام‌گرِ پیکربندیتمرین
  • ادغامِ عمیقِ پیکربندیتمرین
۱۹

تاریخ و زمان (مقادیرِ ثابت)

۶ درس
  • چرا فقط تاریخِ ثابت؟
  • ساخت و قالب‌بندیِ تاریختمرین
  • DateInterval و diffتمرین
  • افزودن و کاستنِ بازهتمرین
  • روزِ هفته و مشخصه‌های قالبتمرین
  • DatePeriod: پیمایشِ بازهتمرین
۲۰

پی‌اچ‌پیِ تابعی و ناوردایی

۶ درس
  • توابعِ خالص و ناوردایی
  • خطِ لوله‌ی تابعیتمرین
  • خطِ لوله‌ی CSV به JSONتمرین
  • ترکیبِ تابع (compose)تمرین
  • کتابخانه‌ی اعتبارسنجیتمرین
  • آمارِ متن (word frequency)تمرین
۲۱

پی‌اچ‌پیِ مدرنِ ۸ و مفهومِ attribute

۶ درس
  • عملگرِ امنِ پوچ ?->تمرین
  • str_contains و خانواده‌اشتمرین
  • attribute به‌عنوانِ مفهوم
  • جمع‌بندیِ اصطلاحاتِ مدرنتمرین
  • دیسپچرِ فرمان (بدونِ HTTP)تمرین
  • گردشِ کد: رویداددهنده (EventDispatcher)تمرین
۲۲

★ دام‌ها و اصطلاحاتِ حرفه‌ای

۶ درس
  • نقشه‌ی دام‌ها
  • isset، empty، ?? و array_key_existsتمرین
  • کپی‌-هنگام‌نوشتن در برابرِ ارجاعتمرین
  • دامِ in_array شل در برابرِ سختتمرین
  • این باگ را پیدا کنتمرین
  • تصادفیِ قطعی با mt_srand(0)تمرین
۲۳

پروژه‌ی واقعی I: موتورِ عبارت و گزارش

۷ درس
  • نقشه‌ی پروژه و قراردادِ قطعی‌بودن
  • توکن‌ساز (tokenizer)تمرین
  • ارزیابِ RPN با SplStackتمرین
  • تبدیلِ میان‌وند به RPN (shunting-yard)تمرین
  • پارسِ CSVتمرین
  • گزارشِ تجمیعیتمرین
  • سیم‌کشیِ نهایی با حلقه‌ی stdinتمرین
۲۴

پروژه‌ی واقعی II: سامانه‌ی بانک/موجودیِ شیءگرا

۷ درس
  • نقشه‌ی پروژه‌ی شیءگرا
  • enum و شیءِ مقدار (value object)تمرین
  • سلسله‌مراتبِ استثنای سفارشیتمرین
  • مخزنِ درون‌حافظه‌ای (repository)تمرین
  • منطقِ سرویس با تضمینِ ناورداتمرین
  • گزارش‌گیری و عکسِ‌فوریِ JSONتمرین
  • سیم‌کشیِ نهایی با دیسپچرِ stdinتمرین

همین حالا شروع کن

اولین خط کدت را همین امروز در «پی‌اچ‌پی از صفر تا برنامه‌نویس» بنویس. شروع رایگان است و در کمتر از دو دقیقه وارد محیط یادگیری می‌شوی.

پی‌اچ‌پی از صفر تا برنامه‌نویس — دینا کد