آموزش پی اچ پی

آنچه در این صفحه می خوانید:

معرفی پی اچ پی (PHP)

پی اچ پی (PHP) یک زبان برنامه نویسی عمومی است که به ویژه برای توسعه وب مناسب است. در ابتدا پی‌اچ‌ پی از عبارت صفحه خانگی شخصی (Personal Home Page) گرفته شده ‌بود اما اکنون این کلمه مخفف Hypertext Preprocessor به معنی پیش‌ پردازنده ابر متن می‌باشد.

این زبان برنامه نویسی بر پایه زبان سی (C) نوشته شده و یک زبان Cross-Platfrom است و بر روی سیستم عامل های مختلف (ویندوز، لینوکس، یونیکس، مک و غیره) قابل اجرا است و همچنین قابلیت نصب آن به صورت شل جداگانه بر روی تقریباً تمامی سیستم‌ عامل و پلتفرم‌ وجود دارد. پی اچ پی تقریبا با تمام سرورهای مورد استفاده امروز (آپاچی، IIS و غیره) سازگار است و از طیف گسترده ای از پایگاه داده نیز پشتیبانی می کند. کد های پی‌ اچ‌ پی توسط وب سروری که پی‌ اچ ‌پی روی آن نصب باشد، تفسیر می‌شوند. دستور های این زبان می‌ توانند به صورت مستقیم در درون کدهای اچ تی ام ال (HTML) قرار گیرند.

قابلیت بهینه‌ سازی کد نیز در زبان پی‌ اچ‌ پی امکان پذیر است و برنامه‌ ها و افزونه‌ هایی مانند eAccelerator برای این منظور توسعه داده می‌شوند. زبان PHP در نسخه های جدید قابلیت پشتیبانی از واسط خط فرمان را نیز به امکانات خود اضافه کرده است. این قابلیت می‌تواند برای ایجاد نرم‌ افزارهای غیر وبی یا نرم‌ افزار های GUI مورد استفاده قرار گیرد. تست برنامه‌ های کاربردی و نرم‌ افزار های توسعه داده شده با PHP از جهت‌ های مختلف حایز اهمیت هستند. با توجه به استفاده فراگیر PHP در برنامه‌های کاربردی وب، تست کارایی (Performance Testing) از اهمیت دو چندانی برخوردار است. همچنین ابزارهای بازبینی و مرور کد نیز کمک فراوانی به توسعه دهندگان می‌کند که بتوانیم بسیاری از اشکالات را در سطح کد و قبل از تست برطرف نماییم.

تاریخچه پی اچ پی (PHP)

توسعه PHP در سال 1994 شروع شد وقتی كه Rasmus Lerdorf چندین برنامه رابط مشترک دروازه (CGI) را در C نوشت، كه وی برای حفظ صفحه شخصی خود استفاده می كرد. وی آن ها را برای کار با وب فرم ها و برقراری ارتباط با پایگاه داده گسترش داد و این را "صفحه خانگی شخصی / فرم ها مترجم" یا PHP/FI خواند. از PHP/FI می توان برای ساختن برنامه های وب ساده و پویا استفاده کرد. سینتکس آن شبیه به پرل بود، اما ساده تر، محدودتر و کمتر سازگار بود.

در طول سال 2014 و 2015، نسخه اصلی PHP جدید ایجاد شد که با شماره PHP 7 شماره گذاری شده است. شماره گذاری این نسخه بحث هایی را شامل می شود. در حالی که تست PHP 6 Unicode هرگز منتشر نشده بود، چندین مقاله و عناوین کتاب نام PHP 6 را ارجاع دادند، که در صورت استفاده مجدد از این نام، ممکن است باعث سردرگمی شود. پس از رای گیری، نام PHP 7 انتخاب شد.

ویژگی های زبان پی اچ پی (PHP)

آموزش کامل پی اچ پی

از ویژگی های عمده پی اچ پی می توان به موارد زیر اشاره کرد:

  • کارایی:اسکریپت PHP سریعتر از اسکریپت های زبان های دیگر مانند JSP و ASP اجرا می شود. PHP از حافظه خاص خود استفاده می کند، بنابراین بار کاری سرور و زمان بارگذاری به صورت خودکار کاهش می یابد، که منجر به سرعت بیشتر پردازش و عملکرد بهتر می شود.
  • اوپن سورس:سورس کد و نرم افزار PHP بطور رایگان در وب موجود است. شما می توانید بدون پرداخت هزینه، تمام نسخه های PHP را مطابق نیاز خود توسعه دهید. کلیه مؤلفه های آن اعم از دانلود و استفاده رایگان است.
  • سینتکس آشنا:PHP دارای سینتکسی است که به راحتی قابل درک است. برنامه نویسان راحت آن را درک می کنند و برنامه نویسی می کنند.
  • جاسازی شده:کد PHP را می توان به راحتی در تگ ها و اسکریپت های HTML وارد کرد.
  • بسترهای نرم افزاری مستقل:PHP برای سیستم عامل های WINDOWS، MAC، LINUX و UNIX موجود است. یک برنامه PHP که در یک سیستم عامل ایجاد شده است می تواند به راحتی در سیستم عامل های دیگر نیز به راحتی اجرا شود.
  • پشتیبانی پایگاه داده:PHP از تمام بانک های اطلاعاتی پیشرو مانند MySQL، SQLite، ODBC و غیره پشتیبانی می کند.
  • گزارش خطا: PHP برای گزارش خطای از پیش تعریف شده از error notice یا هشدار ران تایم استفاده می کند. به عنوان مثال، E_ERROR، E_WARNING، E_STRICT، E_PARSE.
  • قاعده زبان: PHP به ما امکان می دهد بدون اعلام نوع داده از متغیر استفاده کنیم. در ران تایم، براساس نوع داده مقدار آن به طور خودکار گرفته می شود.
  • پشتیبانی از وب سرورها:PHP تقریباً با تمام سرورهای محلی مورد استفاده مانند Apache، Netscape، Microsoft IIS و غیره سازگار است.
  • امنیت:PHP یک زبان مطمئن برای توسعه وب سایت است. این شامل چندین لایه امنیتی برای جلوگیری از تهدیدات و حملات مخرب است.
  • کنترل: زبان های مختلف برنامه نویسی به اسکریپت یا کد طولانی نیاز دارند، در حالی که PHP می تواند همان کار را در چند خط کد انجام دهد.
  • انجمن مفید PHP:این انجمن دارای تعداد زیادی از توسعه دهندگان است که به طور مرتب اسناد، آموزش ها، کمک آنلاین و پرسش و پاسخ را به روز می کنند.

مزایای زبان پی اچ پی (PHP)

کلاس PDO

از PHP Data Object منحصراً برای اتصال به پایگاه داده های MySQL استفاده می شود. PDO یک لایه انتزاع خوب در اطراف مجموعه ای از پایگاه های داده مانند مای اس کیوال (MySQL)، پستگرس کیوال (PostgreSQL) و اس کیوال سرور (SQL Server) فراهم می کند. این بدان معناست که از هر پایگاه داده ای که استفاده می کنید، تا زمانی که PDO از آن پشتیبانی می کند، می توانید از همان توابع در پایگاه داده استفاده کنید. این مزیت باعث می شود کد شما قابل حمل باشد تا بتوانید برنامه وب خود را در کلیه پایگاه های داده بدون زمان توسعه اضافی مورد استفاده قرار دهید.

json_encode و json_decode

با استفاده از PHP5.2، دو تابع بسیار مفید وجود دارد که به شما امکان می دهد رشته های جی سان (JSON) را تجزیه کنید. JSON یک استاندارد مبتنی بر متن است که به طور کلی برای ارسال و دریافت داده با ساختار ساده ای طراحی شده است که به راحتی، توسط کامپیوتر و هم توسط انسان قابل خواندن است.

کلاس DateTime

کلاس DateTime به شما امکان می دهد زمان و تاریخ ها را به شیوه ای مدیریت کنید که با توابع mktime و strtotime غیرممکن است. با استفاده از کلاس های DateInterval و DateTimeZone، ما قادر به انجام عملکردهای استاندارد مانند اضافه کردن یا کم کردن فواصل زمانی در یک تاریخ یا تغییر منطقه زمانی فعلی هستیم. کلاس DateTime همچنین قابل گسترش است، بنابراین می توان قابلیت های اضافی را فراهم کرد، در حالی که پاک کننده تر کردن کد و خواندن آن ساده تر است.

استثناها (Exceptions)

مانند سایر زبان های برنامه نویسی مانند جاوا و سی شارپ، Exception ها برای "throw" خطاها استفاده می شود. گرفتن Exception ها با بستن کدی که می خواهید در بلوک تست قرار دهید، انجام می شود. پس از آن شما نیاز به ایجاد یک بلوک گیرنده برای گرفتن هر Exception موجود در بلوک تست دارید.

فضای نامی (Namespaces)

تا قبل از فضای نامی، PHP هر متغیر، تابع و کلاس را به صورت گلوبال قرار می داد. این مزیت به توسعه دهندگان اطمینان می دهد که برنامه های آنها تابع و نام کلاس منحصر به فرد دارند.

Hashing API

مدتی پیش مشکلی برای برخی سایت ها پیش آمد که رمزهای عبور ناخواسته هک شدند. در آن زمان، استفاده از تابع MD5 برای رمزگذاری رمز عبور کافی بود، بنابراین از لحاظ ایمنی مشکلی وجود نداشت. مشکلی که در MD5 و SHA1 وجود دارد این است که آنها سریعاً الگوریتم هشینگ را انجام می دهند. در کنار اختراع پردازنده های سریعتر و استفاده از GPU، مردم توانایی پردازش صدها هزار هش در ثانیه حتی بر روی رایانه دسکتاپ یا لپ تاپ را دارند.

API hashing جدید که در PHP5.5 معرفی شده است، لایه ای آسان برای استفاده در بالای bcrypt برای ایجاد هش های ایمن (در حال حاضر) فراهم می کند که حل آن توسط هکرها بسیار سخت تر است. مثال زیر نشان می دهد که چگونه می توان هر متغیر رشته را هش کرد.

<?php$hash = password_hash($password, PASSWORD_BCRYPT, ['cost' => 20]);

کلاس SimpleXML

هنگامی که ما باید با فایل های اکس ام ال (XML) سر و کار داشته باشیم، تمایل داریم از کلاس SimpleXML استفاده کنیم. این کلاس با کاربرد آسان، خواندن و ویرایش فایل های XML را از طریق اشیاء به شما امکان می دهد. استفاده از این اشیاء به شما این امکان را می دهد تا مقادیر معمول و همچنین مجموعه ای از روش های ساده برای تغییر ساختار XML را به بازگرداندن مقادیر و تکرار آن در آرایه ها بپردازید. اگر فقط نیاز به چیز خاصی در XML دارید و با استفاده از روش داخلی XPath، می توانید مجموعه ای از اشیاء SimpleXML Element را فقط برای مسیری که ارائه کرده اید برگردانید. علاوه بر خواندن XML،SimpleXML روش هایی را برای ایجاد اسناد جدید و یا تزریق عناصر به XML وارد شده فراهم می کند. این می تواند در چند خط کد ذخیره شود.

طراحی وب با پی اچ پی

طراحی وب شامل مهارت ها و رشته های مختلفی در تولید و نگهداری وب سایت ها است. زمینه های مختلف طراحی وب شامل طراحی وب گرافیکی، که شامل طراحی رابط کاربری (UI)، از جمله کد استاندارد و نرم افزار اختصاصی و طراحی تجربه کاربری (UX) و بهینه سازی موتور جستجو می باشد. اغلب افراد زیادی در تیم هایی مشغول به کار هستند که جنبه های مختلف فرایند طراحی را پوشش می دهند. اگرچه برخی از طراحان را به عنوان فول استک دولوپر پوشش می دهد. اصطلاح طراحی وب معمولاً برای توصیف فرایند مربوط به طراحی فرانت اند (سمت کلاینت) وب سایت استفاده می شود. طراحی وب تا حدودی با مهندسی وب در دامنه وسیع توسعه وب همپوشانی دارد.

چندین فناوری وجود دارد که در بازار برای توسعه یک وب سایت وجود دارد اما بیشتر توسعه دهندگان از PHP به عنوان فناوری توسعه وب سایت استفاده می کنند. این امر منجر به افزایش چشمگیر شرکت های توسعه PHP شده است. دلایل مختلفی وجود دارد که PHP انتخاب توسعه دهندگان وب برای ایجاد یک وب سایت است. همانطور که در ابتدا گفته شد PHP یک زبان برنامه نویسی سمت سرور است، به این معنی که مشتری فقط از آنجا که پردازش در سرور اتفاق می افتد، خروجی را دریافت می کند. پردازش با استفاده از منابع سرور قبل از ارسال خروجی انجام می شود. این برخلاف زبان هایی مانند JavaScript است که زبان در رایانه مشتری پردازش می شود و منابع مورد استفاده از رایانه است و سرور نیست.

پی اچ پی و مای اس کیوال

مای اس کیوال (MySQL) نوعی سیستم مدیریت پایگاه داده‌ های اوپن سورس و رابطه ای می باشد که امکانات زیادی را برای کاربران فراهم می کند. MySQL توسط بسیاری از وب سایت های محبوب از جمله فیسبوک، فلیکر، مدیاویکی، توییتر و یوتیوب استفاده می شود. علاوه بر MySQL تمامی سیستم های مدیریت پایگاه داده رابطه ای (RDMS) مانند، MS Access، اوراکل، Sybase، Informix، پستگرس کیوال، SQLite و اس کیو ال سرور از SQL به عنوان زبان پایگاه داده استاندارد خود استفاده می کنند. اس کیو ال زبان استاندارد برای سیستم پایگاه داده رابطه ای است.

بانک اطلاعاتی بهترین انتخاب برای ذخیره داده ها در برنامه وب شماست، و سرور پایگاه داده MySQL همیشه محبوب ترین انتخاب در بین توسعه دهندگان PHP بوده است. این تقریبا توسط هر شرکت میزبانی که PHP را ارائه می دهد پشتیبانی می کند، و این کار را آسان می کند، و حتی می توانید آن را بر روی رایانه شخصی خود دانلود و نصب کنید.

الگوهای طراحی (Design Patterns) در پی اچ پی

سلوشن های استفاده مجدد برای مشکلات رایج در طراحی نرم افزار وجود دارد که با استفاده از الگوهای طراحی در پی اچ پی ارائه می شود. روابط و تعامل بین طبقات یا اشیا توسط الگوهای طراحی نشان داده می شود. این مفهوم برای سرعت بخشیدن به فرآیند توسعه با ارائه پارادایم های اثبات و طراحی شده مورد استفاده قرار می گیرد. شما می توانید با استفاده از الگوهای طراحی، کد خود را انعطاف پذیر، قابل استفاده مجدد کنید. سه نوع الگوی طراحی وجود دارد. یعنی خلاقیت، ساختاری، رفتاری.

  • الگوهای خلاقیت: از آن ها برای ساخت اشیا به گونه ای استفاده می شود که بتوان از سیستم اجرای آن ها جدا شد.
  • الگوهای ساختاری: از آن ها برای شکل دادن ساختارهای بزرگ بین اشیا متفاوت استفاده می شود.
  • الگوهای رفتاری: از آن ها برای مدیریت الگوریتم ها، روابط و مسئولیت های بین اشیا استفاده می شود.

فریمورک های پی اچ پی (PHP)

فریمورک های PHP

فریمورک های زیادی برای PHP ایجاد شده اند که به برنامه نویسان وب این قدرت را می دهد تا برنامه های پیچیده و امن بسازند. فریمورک PHP، معماری وبی است که روش های مختلفی را در خود جای می دهد و شامل یک سری سیاست های امنیتی و کد های قابل استفاده مجدد و کامپوننت هایی برای کد نویسی سریع برنامه های وب می باشد. این فریمورک ها مزیت های زیادی را برای برنامه نویس به همراه می آورند. از فریمورک های معروف PHP می توان به موارد زیر اشاره کرد :

فریمورک لاراول (Lavarel)

فریمورک لاوارل در سال ۲۰۱۱ معرفی شد و تغییراتی بنیادین در شکل برنامه‌نویسی PHP ایجاد کرد. شعار لاراول "فریمورک PHP برای صنعتگران وب" است. شباهت بیشتر برنامه‌نویسی لاراول به زبان طبیعی سبب می‌شود توسعه و تغییر دادن کدهای نوشته شده در گذشته آسان‌تر از قبل باشد. همچنین بهره‌گیری از آخرین استانداردها و متودولوژی‌های تولید نرم‌افزار، کار کردن با لاراول را برای برنامه‌نویسان و توسعه‌دهندگان آسان و برای کاربران، دلپذیر می‌کند.

فریمورک سیمفونی (Symfony)

سیمفونی یکی از فریمورک های PHP پایدار یا Stable در حوزه طراحی وب است. مقیاس پذیری و قابلیت انعطاف آن به توسعه دهندگان اجازه می دهد تا مهارت های خود را به صورت آزادانه به کار بگیرند. به عنوان یک فریمورک قابل انعطاف دارای آرایه های قابل استفاده مجدد زیادی است که توسعه دهندگان از آن در شکل پیکربندی فرم ها، تایید اطلاعات، موتور فرمت، امنیت و …استفاده می کنند.

فریمورک کدایگنایتر (Codeigniter)

فریمورک Codeigniter یا کدایگنایتر یک فریمورک وب متن باز خیلی سبک است و به توسعه دهندگان در ساخت سریع صفحات وب داینامیک کمک می کند. مستندات جامع و طبیعت انعطاف پذیر فوق العاده آن یادگیری این میکرو فریمورک را خیلی ساده کرده است. نصب آن سبک و بدون دردسر است و تنظیمات کمی دارد. همچنین از کتابخانه‌ های قدرتمندی بهرمند است. این فریمورک محدود به الگوی MVC نیست به این شکل که Model و View ها در آن به دلخواه هستند اما Controller ها الزامی اند.

فریمورک یی (Yii)

فریمورک Yii سریع، ایمن و با عملکرد بالا است و می تواند زمان کد نویسی را بسیار کاهش دهد. این فریمورک کاملا آبجکت محور است. از تکنیک بارگذاری Lazy و همچنین کامپوننت‌هایی برای توسعه‌ ابزارها استفاده می‌کند. برای ساخت انواع برنامه های وب مانند انجمن ها، پورتال ها، سیستم های مدیریت محتوا، سرویس RESTful، وب سایت های تجارت الکترونیک و غیره مناسب است. همچنین Yii دارای یک ابزار سازنده کد به نام Gii است که شامل سازنده کامل CRUD می باشد.

فریمورک فالکون (Phalcon)

فریمورک فالکون از معماری model – view – controller استفاده می کند و برنامه نویسان راحت تر و با سرعت بیشتری می توانند برنامه های پیچیده و بزرگ طراحی کنند. این فریمورک حداقل استفاده از منابع را دارد. فالکون یک extention برای PHP است که به زبان C نوشته شده است. شما می‌توانید Phalcon را متناسب با نیازهایتان، بهینه سازی کنید.

فریمورک زند (Zend)

زند فریمورکی بسیار امن و قابل اطمینان است.این فریمورک از معماری MVC پشتیبانی می کند و بر اساس متد چابک (Agile) طراحی شده است. همچنین Zend کاملا از اصول شی گرایی (SOLID) در ساختار خود پیروی می کند. دارای ویژگی های خوبی مثل ویرایش drag-drop است که از HTML، جاوااسکریپت، Css و سیستم خطایابی لحظه ای آنلاین PHP برخوردار است و ابزار های کد نویسی رمز نگاری را در خود جای داده است.

سیستم های مدیریت محتوا مبتنی بر پی اچ پی (PHP)

وردپرس (Wordpress)

وردپرس (WordPress) یک سیستم مدیریت محتوا (CMS) مبتنی بر پی اچ پی و مای اس کیو ال است که معمولاً با سرورهای پایگاه داده مای اس کیوال یا ماریا دی بی استفاده می شود اما می تواند از موتور پایگاه داده اس کیو لایت (SQLite) نیز استفاده کند. این ویژگی ها شامل یک معماری افزونه و یک سیستم قالب است که در داخل WordPress به عنوان تم گفته می شود. وردپرس بیشتر با وبلاگ نویسی مرتبط است. اما برای پشتیبانی از انواع دیگر مطالب وب از جمله لیست های پستی سنتی و انجمن ها، گالری های رسانه ای، سایت های عضویت، سیستم های مدیریت یادگیری (LMS) و فروشگاه های آنلاین تکامل یافته است.

وردپرس بیش از 60 میلیون وب سایت از جمله 33.6 درصد از 10 میلیون وب سایت برتر تا آوریل 2019 استفاده می شود، وردپرس یکی از محبوب ترین راه حل های مدیریت محتوای سیستم (CMS) مورد استفاده است. WordPress همچنین برای سایر دامنه های کاربردی مانند سیستم های نمایش فراگیر (PDS) استفاده شده است.

جوملا (Joomla)

جوملا یک سیستم مدیریت محتوای رایگان و اوپن سورس (CMS) برای انتشار محتوای وب است که توسط .Open Source Matters, Inc ساخته شده است. این برنامه بر روی یک فریمورک برنامه کاربردی وب مشاهده کننده-کنترل کننده ساخته شده است که می تواند مستقل از CMS استفاده شود. جوملا به زبان پی اچ پی نوشته شده است، از تکنیک های برنامه نویسی شی گرا و الگوهای طراحی نرم افزار استفاده می کند و داده ها را در MySQL،MS SQL یا PostgreSQL ذخیره می کند و شامل ویژگی هایی از قبیل حافظه پنهان صفحه، فیدهای RSS، نسخه های قابل چاپ از صفحات، وبلاگ ها، جستجو و پشتیبانی از زبان های بین المللی را دارد.

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

دروپال (Drupal)

دروپال یک سیستم مدیریت محتوای (CMS) رایگان و اوپن سورس با یک جامعه پشتیبان بزرگ است. دروپال به زبان پی اچ پی نوشته شده و تحت مجوز عمومی گنو توزیع شده است. دروپال فریمورک بک اند 2.3٪ از کل وب سایت های سراسر جهان است و از وبلاگ های شخصی گرفته تا سایت های سازمانی، سیاسی و دولتی را در بر می گیرد. سیستم ها همچنین از دروپال برای مدیریت دانش و همکاری تجاری استفاده می کنند.

    مثال کد پی اچ پی (PHP)

    برنامه ساده زیر با کد PHP تعبیه شده در یک داکیومنت HTML نوشته شده است:

    <!DOCTYPE html>
    <html>
     <head>
      <title>PHP "Hello, World!" program</title>
     </head>
     <body>
      <?php echo '<p>Hello, World!</p>'; ?>
     </body>
    </html>

    با این حال، از آنجا که هیچ ضرورتی برای کد PHP در HTML تعبیه نشده است، ساده ترین نسخه Hello، World! ممکن است به صورت زیر نوشته شود.

     <?php echo 'Hello, World!';

    مفسر PHP فقط كد PHP را در محدوده خود اجرا مي كند. هر چیزی در خارج از آن توسط PHP پردازش نمی شود، اگرچه متن غیر PHP هنوز هم در معرض ساختارهای کنترل توصیف شده در کد PHP است. متداول ترین تعیین کننده ها </ php برای باز کردن و ؟> برای بستن بخش های PHP هستند. فرم کوتاه شده <؟ همچنین وجود دارد این تعیین کننده کوتاه باعث می شود فایل های اسکریپت کمتر قابل حمل باشند زیرا پشتیبانی از آنها می تواند در پیکربندی لوکال PHP غیرفعال شود. هیچ نظریه ای علیه تگ کوتاه اکو وجود ندارد <?=. قبل از PHP 5.4.0، این سینتکس کوتاه برای ()echoفقط با تنظیم پیکربندی short_open_tag فعال است، در حالی که برای PHP 5.4.0 و بعد از آن همیشه در دسترس است. هدف همه این تعیین کننده ها جدا کردن کد PHP از محتوای غیر PHP مانند کد JavaScript یا نشانه گذاری HTML است.

    شکل اول تعیین کننده ها، <؟ php و؟>، در XHTML و سایر اسناد XML دستورالعمل های پردازش XML را به درستی ایجاد می کند. این بدان معناست که مخلوط حاصل از کد PHP و سایر نشانه گذاری ها در فایل سمت سرور، XML به خوبی شکل گرفته است.

    متغیرها با نماد دلار پیشوند می شوند و یک نوع لازم نیست که از قبل مشخص شود. PHP 5 نوع اشاره ای را ارائه می دهد که به توابع اجازه می دهد پارامترهای خود را وادار به آبجکت یک کلاس خاص، آرایه ها، اینترفیس ها یا توابع برگشتی کنند. با این حال، قبل از PHP 7.0، نکات نوع را نمی توان با انواع مقیاس مانند عدد صحیح یا رشته استفاده کرد.

    برخلاف نام های تابع و کلاس، نام های متغیر حساس به حروف کوچک و بزرگ هستند. هر دو رشته دارای دو نقل قول ("") و "heredoc" این توانایی را دارند که مقدار متغیر را درون رشته تغییر دهند. پی اچ پی خط های جدید را به عنوان فضای سفید و به شیوه یک زبان فرم آزاد رفتار می کند و سیمیکالون statement ها را  به پایان می رساند. پی اچ پی سه نوع سینتکس رایج دارد: / * * / علائم بلاک و توضیحات درون خطی. // یا # برای کامنت های تک خطی استفاده می شود. عبارت echo یکی از چندین امکاناتی است که PHP برای متن خروجی ارائه می دهد.

    از نظر کلمات کلیدی و سینتکس زبان، PHP شبیه به نحوی به سبک C است. شرط if، حلقه های for و while، و بازدهی عملکرد آن در سینتکس با زبان هایی مانند سی شارپ، جاوا، سی و سی پلاس پلاس و پرل مشابه است.

    انواع داده ها

    PHP اعداد صحیح را در یک دامنه وابسته به پلتفرم، یا به صورت یک عدد صحیح 32، 64 یا 128 بیتی معادل نوع بلند به زبان C ذخیره می کند. اعداد صحیح ثبت نشده در موقعیت های خاص به مقادیر امضا شده تبدیل می شوند که این رفتار متفاوت با بسیاری از زبان های برنامه نویسی دیگر است. متغیرهای علاقه را می توان با استفاده از نمادهای اعشاری (مثبت و منفی)، اکتال، شش ضلعی و دودویی اختصاص داد.

    اعداد شناور نیز در یک محدوده خاص برای پلتفرم ذخیره می شوند. آنها را می توان با استفاده از نشانه گذاری نقطه شناور یا دو شکل از نشانه گذاری علمی مشخص کرد. نوع داده تهی، متغیری را نشان می دهد که هیچ ارزشی ندارد. NULL تنها مقدار مجاز برای این نوع داده است. متغیرهایی از نوع "resource" اشاره به سورس از منابع خارجی دارند. اینها معمولاً توسط توابع از یک پسوند خاص ایجاد می شوند و فقط با توابع با همان پسوند قابل پردازش هستند. مثال ها شامل سورس فایل، تصویر و بانک اطلاعاتی هستند.

    آرایه ها می توانند شامل عناصر از هر نوع PHP باشند که شامل سورس، اشیاء و حتی آرایه های دیگر باشد. نظم در لیست هایی از مقادیر و هشدارها با کلیدها و مقادیر حفظ می شود، و این دو می توانند در هم آمیخته شوند. PHP همچنین از رشته ها پشتیبانی می کند، که می توانند با نقل قول های واحد، نقل قول های مضاعف، نحو Nowdoc یا heredoc استفاده شوند.

    كتابخانه استاندارد PHP (SPL) تلاش دارد تا مشكلات استاندارد را حل كند و رابط ها و كلاس هاي دسترسي به داده ها را پياده سازي كند.

    توابع

    PHP مجموعه بزرگی از توابع را به زبان اصلی تعریف می کند و بسیاری از آنها در پسوند های مختلف نیز موجود است.

    توابع سفارشی ممکن است توسط توسعه دهنده تعریف شود:

    function myAge(int $birthYear): string
    {
        // calculate the age by subtracting the birth year from the current year.
        $yearsOld = date('Y') - $birthYear;
    
        // return the age in a descriptive string.
        return $yearsOld . ' year' . ($yearsOld != 1 ? 's':'');
    }
    
    echo 'I am currently ' . myAge(1995) . ' old.';

    در سال 2020، خروجی برنامه نمونه فوق "I am currently 25 years old." است.

    به جای نشانگرهای عملکرد، توابع در PHP را می توان با یک رشته حاوی نام آنها ارجاع داد. در این روش، از توابع PHP معمولی، به عنوان مثال، به عنوان فراخوانی یا در جداول تابع استفاده می شود. توابع تعریف شده توسط کاربر ممکن است در هر زمان و بدون نمونه سازی ایجاد شود. توابع ممکن است در داخل بلوک های کد تعریف شوند، این تصمیم را می دهد که یک تابع تعریف شود یا خیر، اجازه اجرا دارد. تابع function_exists مشخص می کند تابعی با نام قید شده قبلاً تعریف شده است یا خیر. مکالمات عملکردی باید از پرانتز استفاده کنند، به استثنای توابع سازنده کلاس آرگومان صفر که با عملگر PHP جدید خوانده می شوند، در این صورت پرانتز اختیاری است.

    نظرتون درباره این نوشته چیه؟ عالیه بد نیست خوب نبود