پی‌اچ‌پی: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
Fatemibot (بحث | مشارکت‌ها)
جز ربات ردهٔ همسنگ (۳۰.۱) +مرتب+تمیز (۱۴.۹ core): + رده:نوشتارهای صوتی
خط ۳۲:
|وب‌گاه = {{URL|http://www.php.net}}
|پسوند نام پرونده=.php, .phtml, .php3, .php4, .php5, .php7, .phps, .php-s, .pht}}
'''پی‌اچ‌پی''' {{انگلیسی|PHP}} یک [[زبان برنامه‌نویسی|زبان برنامه‌نویسیِ]] [[شیءگرا]] است که برای [[طراحی وب]] توسعه یافته‌است، اما می‌توان از آن به عنوان یک زبان عمومی نیز استفاده‌کرد. تا ژانویهٔ سال ۲۰۱۳ میلادی پی‌اچ‌پی بر روی ۲۴۴ میلیون [[وب‌گاه]] و ۲٫۱ میلیون [[سرور وب]] نصب شده‌است.<ref>{{یادکرد |نویسنده = Andy Ide|نشانی= http://news.netcraft.com/archives/2013/01/31/php-just-grows-grows.html|عنوان= PHP just grows & grows| ناشر = Netcraft|تاریخ = January 31, 2013|تاریخ بازبینی= September 22, 2013|زبان=en}}</ref> این زبان در سال ۱۹۹۵ میلادی توسط [[راسموس لردورف|راسموس لِردورف]] {{به انگلیسی|Rasmus Lerdorf}} ساخته‌شد و در حال حاضر توسعهٔ آن بر عهدهٔ گروه پی‌اچ‌پی می‌باشد.<ref name="history">{{یادکرد |نویسنده = |نشانی= http://www.php.net/manual/en/history.php.php|عنوان= History of PHP| ناشر = PHP Website|تاریخ = |تاریخ بازبینی= September 22, 2013|زبان=en}}</ref> در ابتدا پی‌اچ‌پی از عبارت ''صفحهٔ خانگی شخصی'' {{به انگلیسی|Personal Home Page}} گرفته شده‌بود.<ref name="history" /> اما اکنون این کلمه مخففِ بازگشتی ''PHP: Hypertext Preprocessor'' به معنی ''پی‌اچ‌پی: [[پیش‌پردازنده|پیش‌پردازندهٔ]] [[ابرمتن]]'' می‌باشد.<ref>{{یادکرد |نویسنده = |نشانی= http://www.php.net/manual/en/preface.php|عنوان= Preface | ناشر = PHP Webiste|تاریخ = |تاریخ بازبینی= September 22, 2013|زبان=en}}</ref>
 
'''پی‌اچ‌پی''' {{انگلیسی|PHP}} یک [[زبان برنامه‌نویسی|زبان برنامه‌نویسیِ]] [[شیءگرا]] است که برای [[طراحی وب]] توسعه یافته‌است، اما می‌توان از آن به عنوان یک زبان عمومی نیز استفاده‌کرد. تا ژانویهٔ سال ۲۰۱۳ میلادی پی‌اچ‌پی بر روی ۲۴۴ میلیون [[وب‌گاه]] و ۲٫۱ میلیون [[سرور وب]] نصب شده‌است.<ref>{{یادکرد |نویسنده = Andy Ide|نشانی= http://news.netcraft.com/archives/2013/01/31/php-just-grows-grows.html|عنوان= PHP just grows & grows| ناشر = Netcraft|تاریخ = January 31, 2013|تاریخ بازبینی= September 22, 2013|زبان=en}}</ref> این زبان در سال ۱۹۹۵ میلادی توسط [[راسموس لردورف|راسموس لِردورف]] {{به انگلیسی|Rasmus Lerdorf}} ساخته‌شد و در حال حاضر توسعهٔ آن بر عهدهٔ گروه پی‌اچ‌پی می‌باشد.<ref name="history">{{یادکرد |نویسنده = |نشانی= http://www.php.net/manual/en/history.php.php|عنوان= History of PHP| ناشر = PHP Website|تاریخ = |تاریخ بازبینی= September 22, 2013|زبان=en}}</ref> در ابتدا پی‌اچ‌پی از عبارت ''صفحهٔ خانگی شخصی'' {{به انگلیسی|Personal Home Page}} گرفته شده‌بود.<ref name="history" /> اما اکنون این کلمه مخففِ بازگشتی ''PHP: Hypertext Preprocessor'' به معنی ''پی‌اچ‌پی: [[پیش‌پردازنده|پیش‌پردازندهٔ]] [[ابرمتن]]'' می‌باشد.<ref>{{یادکرد |نویسنده = |نشانی= http://www.php.net/manual/en/preface.php|عنوان= Preface | ناشر = PHP Webiste|تاریخ = |تاریخ بازبینی= September 22, 2013|زبان=en}}</ref>
 
کدهای پی‌اچ‌پی توسط یک [[سرور وب]] که [[نرم‌افزار]] پی‌اچ‌پی بر روی آن نصب باشد، [[مفسر (رایانه)|تفسیر]] می‌شوند. دستورهای این زبان می‌توانند به صورت مستقیم در درون کدهای [[اچ‌تی‌ام‌ال]] قرار بگیرند. زبان پی‌اچ‌پی از نسخهٔ ۴٫۳ به بعد قابلیت پشتیبانی از [[واسط خط فرمان]] را نیز به امکانات خود اضافه کرد. این قابلیت می‌تواند برای ایجاد [[نرم‌افزار]]های غیر وبی یا نرم‌افزارهایی با [[واسط گرافیکی کاربر]] مورد استفاده قرار بگیرد.<ref>{{یادکرد |نویسنده = |نشانی= http://www.php.net/manual/en/intro-whatcando.php|عنوان= What can PHP do?| ناشر = PHP Website|تاریخ = |تاریخ بازبینی= September 22, 2013|زبان=en}}</ref>
سطر ۴۲ ⟵ ۴۱:
{{triple image|left| Rasmus Lerdorf cropped.jpg|100| Andi Gutmans 1.jpg|100| Zeev Suraski 2005 cropped.jpg|100|[[راسموس لردورف]] (در تصویر سمت راست) که پی‌اچ‌پی اولیه را نوشت، در کنار [[اندی گاتمنس]] و [[زیو سوراسکی]] که نویسنده‌های نسخهٔ ۳ پی‌اچ‌پی بودند.}}
 
توسعهٔ‌پی‌اچ‌پی از سال ۱۹۹۴ و زمانی که [[راسموس لردورف]] تعدادی [[اسکریپت]] به زبان [[سی (زبان برنامه‌نویسی)|سی]] نوشت تا صفحهٔ خانگی خود را مدیریت کند، آغاز شد. این اسکریپت‌ها که به صورت ''رابط دروازهٔ مشترک'' {{به انگلیسی|Common Gateway Inteface}} نوشته شده‌بودند، مسئول انجام عملیات‌های ساده‌ای مانند نشان دادن رزومهٔ [[راسموس لردورف|راسموس]] و بررسی آمارهای بازدید از [[وب‌گاه]] او بودند.<ref name="history" /> با گسترش اسکریپت‌ها و افزودن توانایی تعامل با [[فرم (اچ‌تی‌ام‌ال)|فرم‌های وب]] و ارتباط با [[پایگاه داده|پایگاه‌های داده]]، نام ''صفحهٔ خانگی شخصی/مفسر فرم'' {{به انگلیسی|Personal Home Page/Form Interpreter}} یا PHP/FI برای آن‌ها انتخاب شد. PHP/FI می‌توانست برای ایجاد [[برنامه کاربردی وب|نرم‌افزارهای سادهٔ وب]] مورد استفاده قرار بگیرد. لردورف در ابتدا برای یافتن خطاهای این اسکریپت‌ها و بهبود آن‌ها، در ۸ جون سال ۱۹۹۵ میلادی اسکریپت‌ها را با نام ''ابزارهای صفحهٔ خانگی شخصی نسخهٔ ۱٫۰'' {{به انگلیسی| Personal Home Page Tools version 1.0}} تحت [[پروانه عمومی همگانی گنو|مجوز عمومی گنو]] بر روی گروه خبری [[یوزنت]] منتشر کرد.<ref>{{یادکرد |نویسنده = Rasmus Lerdorf|نشانی= https://groups.google.com/forum/#!msg/comp.infosystems.www.authoring.cgi/PyJ25gZ6z7A/M9FkTUVDfcwJ|عنوان= Announce: Personal Home Page Tools (PHP Tools)| ناشر = |تاریخ = June 8, 1995|تاریخ بازبینی= September 24, 2013|زبان=en}}</ref> این نسخهٔ اولیه بسیاری از ویژگی‌های نسخهٔ کنونی این زبان را دارا بود. متغیرها به سبک زبان [[پرل]] بودند، مدیریت فرم‌ها وجود داشت و می‌شد کدها را در درون کدهای [[اچ‌تی‌ام‌ال]] قرار داد. [[نحو|قواعد]] پی‌اچ‌پی نیز از زبان [[پرل]] پیروی می‌کردند، اما ساده‌تر، محدودتر و ناپایدارتر بودند.<ref name="history" /> با شکل‌گیری یک گروه [[برنامه‌نویس]]ی و بعد از انجام تست‌های فراوان بر روی [[چرخه ارائه نرم‌افزار#بتا (Beta)|نسخهٔ بتا]] و بازنویسی [[تجزیه‌کننده|موتور تجزیه‌کننده]]، سرانجام PHP/FI نسخهٔ ۲٫۰ در نوامبر سال ۱۹۹۷ میلادی منتشر گردید.<ref name="history" />
 
[[اندی گاتسمن]] و [[زیو سوراسکی]] با بازنویسی [[تجزیه‌کننده|موتور تجزیه‌کننده]] در سال ۱۹۹۷ میلادی، پایه و اساس نسخهٔ ۳ پی‌اچ‌پی را بنیان نهادند. این ۲ نفر با همراهی لردورف با تغییر نام پی‌اچ‌پی به ''پی‌اچ‌پی: [[پیش‌پردازنده|پیش‌پردازندهٔ]] [[ابرمتن]]'' {{به انگلیسی|PHP: Hypertext Preprocessor}} که یک مخفف بازگشتی است، در ماه جون ۱۹۹۸ میلادی رسماً پی‌اچ‌پی نسخهٔ ۳٫۰ را منتشر کردند.<ref name="history" /> بعد از این اتفاق گاتسمن و سوراسکی شروع به نوشتن هستهٔ جدیدی برای زبان پی‌اچ‌پی کردند که منجر به به‌وجودآمدن [[موتور زند|موتور زِند]] در سال ۱۹۹۹ میلادی شد. آن‌ها همچنین شرکت [[زِند تکنولوژی]] را در کشور [[اسرائیل]] تأسیس کردند.<ref>{{یادکرد |نویسنده = |نشانی= http://www.zend.com/en/company/community/php/|عنوان= PHP and Zend Engine| ناشر = Zend|تاریخ = |تاریخ بازبینی= September 24, 2013|زبان=en}}</ref><ref>{{یادکرد |نویسنده = |نشانی= http://www.zend.com/en/company/news/press/zend-takes-home-award-for-best-israeli-startup-company|عنوان= Zend Takes Home Award for Best Israeli Startup Company| ناشر = Zend Press|تاریخ = June 21, 2006|تاریخ بازبینی= September 24, 2013|زبان=en}}</ref>
 
در تاریخ ۲۲ می سال ۲۰۰۰ میلادی پی‌اچ‌پی نسخهٔ ۴ که از [[موتور زند]] نسخهٔ ۱٫۰ استفاده می‌کرد، منتشر شد.<ref name="history" /> این نسخه تا ماه اوت سال ۲۰۰۸ میلادی توسعه یافت و به زیرنسخهٔ ۴٫۴٫۹ رسید. هم‌اکنون پشتیبانی این نسخه به پایان رسیده‌است و هیچ به‌روزرسانی برای آن منتشر نمی‌شود.<ref name="archive_2007">{{یادکرد |نویسنده = |نشانی= http://www.php.net/archive/2007.php|عنوان= PHP: News Archive 2007| ناشر = PHP News|تاریخ = 2007|تاریخ بازبینی= September 24, 2013|زبان=en}}</ref><ref>{{یادکرد |نویسنده = Sean Michael Kerner|نشانی= http://www.internetnews.com/dev-news/article.php/3725291|عنوان= PHP 4 is Dead—Long Live PHP 5| ناشر = Internet News|تاریخ = February 01, 2008|تاریخ بازبینی= September 24, 2013|زبان=en}}</ref>
 
در ۱۳ ژوئیه سال ۲۰۰۴ میلادی، نسخهٔ ۵ پی‌اچ‌پی که از موتور زند نسخهٔ ۲ بهره می‌برد، منتشر شد.<ref name="history" /> نسخهٔ ۵ ویژگی‌های زیادی را به پی‌اچ‌پی اضافه کرد. پشتیبانی کامل از [[برنامه‌نویسی شیءگرا|شیء گرایی]]، افزونهٔ PDO {{به انگلیسی|PHP Data Object Extension}} (که دسترسی به [[بانک اطلاعاتی|بانک‌های اطلاعاتی]] را ممکن می‌ساخت) و بهبود بازدهی از جملهٔ این ویژگی‌ها محسوب می‌شد.<ref>{{یادکرد |نویسنده = Adam Trachtenberg|نشانی= http://www.onlamp.com/pub/a/php/2004/07/15/UpgradePHP5.html|عنوان= Why PHP 5 Rocks!| ناشر = O'Reilly|تاریخ = July 15, 2004|تاریخ بازبینی= September 24, 2013|زبان=en}}</ref> از سال ۲۰۰۸ به بعد، با پایان یافتن پشتیبانی از تمامی نسخه‌های قدیمی‌تر پی‌اچ‌پی، نسخهٔ ۵ تنها نسخهٔ در حال گسترش است.
 
در کنار نسخهٔ ۵ پی‌اچ‌پی یک نسخهٔ اصلی دیگر در حال توسعه است. با توجه به تغییرات عمدهٔ موجود در این نسخه از جمله پشتیبانی کامل از یونیکد، قرار بود این نسخه به عنوان نسخهٔ ۶ پی‌اچ‌پی منتشر گردد. اما پیاده‌سازی پشتیبانی از یونیکد بیش از آنچه انتظار می‌رفت به طول انجامید. این امر باعث شد تا در مارچ سال ۲۰۱۰ میلادی، این نسخه به بخش در حال توسعه {{به انگلیسی|Trunk}} منتقل شد و دیگر به آن نسخهٔ ۶ گفته نمی‌شود.
 
مهم‌ترین تغییرات این بخش جدید شامل حذف <code>register_globals</code>،<ref>{{یادکرد |نویسنده = |نشانی= http://www.php.net/manual/en/ini.core.php#ini.register-globals|عنوان= Description of core php.ini directives| ناشر = PHP|تاریخ = |تاریخ بازبینی= September 24, 2013|زبان=en}}</ref> <code>magic quotes</code> و <code>safe mode</code> می‌باشد.<ref name="archive_2007" />
دلیل حذف <code>magic quotes</code> تأثیرات غیرقابل پیش‌بینی و دلیل حذف <code>register_globals</code> خطرهای امنیتی بود که در نرم‌افزارها ایجاد می‌کرد. به جای استفاده از <code>magic qoutes</code> [[برنامه‌نویس]]ها می‌توانند از تابع <code>addslashes()</code> یا توابع دقیق‌تری که برای هر [[پایگاه داده]] ایجاد شده‌اند مانند <code>mysql_real_escape_string()</code> که برای پایگاه داده [[مای‌اس‌کیوال]] طراحی شده‌است، استفاده کنند. توابعی که قرار است در نسخهٔ ۶ حذف شوند، از نسخهٔ ۵٫۳ به صورت ''توصیه‌نشده'' {{به انگلیسی|Deprecated}} درآمده‌اند و استفاده از آن‌ها باعث بروز هشدار در نرم‌افزار خواهد شد.<ref>{{یادکرد |نویسنده = |نشانی= http://www.php.net/manual/en/migration53.deprecated.php|عنوان= Deprecated features in PHP 5.3.x| ناشر = PHP|تاریخ = |تاریخ بازبینی= September 24, 2013|زبان=en}}</ref>
 
سطر ۷۲ ⟵ ۷۱:
| {{Date|1995-06-08}}
|
| این نسخه به صورت رسمی "Personal Home Page Tools" یا "PHP Tools" نامیده شد. کلمهٔ پی‌اچ‌پی اولین بار در اینجا به کار رفت.<ref name="about PHP" />
|-
| {{نسخه |ق | ۲٫۰}}
سطر ۸۱ ⟵ ۸۰:
| {{نسخه |ق | ۳٫۰}}
| {{Date|1998-06-06}}
| {{Date|2000-10-20}}<ref name="eol" />
| توسعه‌دهندگان از یک به چند نفر افزایش یافتند. [[زیو سوراسکی]] و [[اندی گاتمنس]] هستهٔ این نسخه را بازنویسی کردند.<ref name="history" />
|-
| {{نسخه |ق | ۴٫۰}}
| {{Date|2000-05-22}}
| {{Date|2001-06-23}}<ref name="eol" />
| سیستم دومرحله‌ای تجزیه/اجرای پیشرفته تحت عنوان ''[[موتور زند]]'' به این نسخه اضافه شد.<ref name="php4changelog">{{یادکرد |نویسنده = |نشانی= http://www.php.net/ChangeLog-4.php|عنوان= PHP: PHP 4 ChangeLog| ناشر = |تاریخ = |تاریخ بازبینی= September 24, 2013|زبان=en}}</ref>
|-
| {{نسخه |ق | ۴٫۱}}
| {{Date|2001-12-10}}
| {{Date|2002-03-12}}<ref name="eol" />
| متغیرهای فوقِ سراسری(Superglobal) معرفی شدند. (<code>GET</code>، <code>$_POST</code>، <code>$_SESSION</code> و…)<ref name="php4changelog" />
|-
| {{نسخه |ق | ۴٫۲}}
| {{Date|2002-04-22}}
| {{Date|2002-09-06}}<ref name="eol" />
| تنظیم <code>register_globals</code> به صورت پیش‌فرض غیرفعال شد. با این تغییر اطلاعاتی که از طریق شبکه ارسال می‌شدند، دیگر به‌طور مستقیم در محدودهٔ متغیرهای فوقِ سراسری قرار نمی‌گرفتند. این نکته مشکلات امنیتی احتمالی بسیاری از نرم‌افزارها را برطرف کرد.<ref name="php4changelog" />
|-
| {{نسخه |ق | ۴٫۳}}
| {{Date|2002-12-27}}
| {{Date|2005-03-31}}<ref name="eol" />
| [[واسط خط فرمان]] یا همان CLI به این نسخه اضافه شد.<ref name="php4changelog" />
|-
| {{نسخه |ق | ۴٫۴}}
| {{Date|2005-07-11}}
| {{Date|2008-08-07}}<ref name="eol" />
| صفحات راهنما(man page) برای درستورات phpsize و config-php اضافه شد.<ref name="php4changelog" />
|-
| {{نسخه |ق | ۵٫۰}}
| {{Date|2004-07-13}}
| {{Date|2005-09-05}}<ref name="eol" />
| [[موتور زند]] نسخهٔ ۲ معرفی شد.<ref name="php5changelog">{{یادکرد |نویسنده = |نشانی= http://www.php.net/ChangeLog-5.php|عنوان= PHP: PHP 5 ChangeLog| ناشر = PHP|تاریخ = |تاریخ بازبینی= September 24, 2013|زبان=en}}</ref>
|-
| {{نسخه |ق | ۵٫۱}}
| {{Date|2005-11-24}}
| {{Date|2006-08-24}}<ref name="eol" />
| بهبود بازدهی با معرفی متغیرهای مترجم (Compiler Variables) در موتور جدید پی‌اچ‌پی.<ref name="php5changelog" /> مدل PDO به عنوان یک رابط پایدار برای برقراری ارتباط با [[بانک اطلاعاتی|بانک‌های اطلاعاتی]] معرفی شد.<ref>{{یادکرد |نویسنده = |نشانی= http://www.php.net/manual/en/intro.pdo.php|عنوان= Introduction to PDO| ناشر = PHP|تاریخ = |تاریخ بازبینی= Spetember 24, 2013|زبان=en}}</ref>
|-
| {{نسخه |ق | ۵٫۲}}
| {{Date|2006-11-02}}
| {{Date|2011-01-06}}<ref name="eol" />
| افزونهٔ فیلتر (Filter Extension) به صورت پیش‌فرض فعال شد. پشتیبانی از [[جی‌سن|جی‌سَن]] (JSON) افزوده شد.<ref name="php5changelog" />
|-
| {{نسخه |ق | ۵٫۳}}
| {{Date|2009-06-30}}
| {{Date|2014-08-14}}<ref name="eol" />
| پشتیبانی از namespace, late static binding، دستور jump (نسخهٔ ضعیف شدهٔ دستور Goto) و [[زباله جمع‌کن (علوم رایانه)|زباله جمع‌کن]]. پشتیبانی بهتر از [[سیستم‌عامل]] [[ویندوز]]. پشتیبانی از [[اس‌کیوال لایت|اس‌کیوال‌لایت]] نسخهٔ ۳. کتابخانهٔ Mysqlnd جایگزین کتابخانهٔ libmysql (که مسئول برقراری ارتباط با بانک‌اطلاعاتی [[مای‌اس‌کیوال]] بود) شد. افزونهٔ fileinfo که کارایی بهتری در مورد MIMEها دارد، جایگزین افزونهٔ mime_magic شد. افزونهٔ بین‌الملل (Internationalization) اضافه شد و توابع ereg از دور خارج شدند.
|-
| {{نسخه |ق | ۵٫۴}}
| {{Date|2012-03-01}}
| {{Date|2015-09-03}}<ref name="eol" />
| پشتیبانی از [[Trait]]. پشتیبانی از آرایه‌ها با فرمت کوتاه. [[سرور وب]] داخلی.<ref>{{یادکرد |نویسنده = |نشانی= http://php.net/manual/en/features.commandline.webserver.php|عنوان= PHP: Built-in web server - Manual| ناشر = |تاریخ = |تاریخ بازبینی= September 24, 2013|زبان=en}}</ref> بهبود کارایی و استفاده از حافظه به میزان کمتر.{{سخ}}توابع حذف شده: <code>register_globals</code>, <code>safe_mode</code>, <code>allow_call_time_pass_reference</code>, <code>session_register</code>
|-
سطر ۱۵۱ ⟵ ۱۵۰:
| {{نسخه |ق | ۷٫۰}}
| {{Date|2015-12-03}}<ref name=php7final>{{cite web |url=http://php.net/archive/2018.php#id2018-07-19-2|title=News Archive&nbsp;– 2018: PHP&nbsp;7.2.9 Released |date=2018-08-16 |access-date=2018-08-16 |website=php.net}}</ref>
| {{Date|2018-12-03}}<ref name="releaseprocess" />
| Zend Engine 3 (performance improvements<ref name="phpng" /> and 64-bit integer support on Windows<ref>{{cite web|url=https://wiki.php.net/rfc/size_t_and_int64_next|title=PHP: rfc:size_t_and_int64_next|website=php.net|access-date=16 December 2014}}</ref>), uniform variable syntax,<ref name="uvs" /> [[Abstract Syntax Tree|AST]]-based compilation process,<ref>{{cite web|url=https://wiki.php.net/rfc/abstract_syntax_tree|title=PHP: rfc:abstract_syntax_tree|website=php.net|access-date=16 December 2014}}</ref> added {{code|lang=php|code=Closure::call()}},،<ref>{{cite web|url=https://wiki.php.net/rfc/closure_apply|title=PHP: rfc:closure_apply|website=php.net|access-date=16 December 2014}}</ref> bitwise shift consistency across platforms,<ref>{{cite web|url=https://wiki.php.net/rfc/integer_semantics|title=PHP: rfc:integer_semantics|website=php.net|access-date=16 December 2014}}</ref> {{code|lang=php|code=??}} ([[Null coalescing operator|null coalesce]]) operator,<ref>{{cite web|url=https://wiki.php.net/rfc/isset_ternary|title=PHP: rfc:isset_ternary|website=php.net|access-date=16 December 2014}}</ref> [[Unicode]] code point [[String literal#Escape sequences|escape syntax]],<ref>{{cite web|url=https://wiki.php.net/rfc/unicode_escape|title=RFC: Unicode Codepoint Escape Syntax|date=2014-11-24|access-date=2014-12-19}}</ref> return type declarations,<ref name="return-types" /> scalar type (integer, float, string and boolean) declarations,<ref name="scalar-types" /> <code>&lt;=&gt;</code> "spaceship" [[three-way comparison]] operator,<ref>{{cite web|url=https://wiki.php.net/rfc/combined-comparison-operator|title=Combined Comparison (Spaceship) Operator|website=php.net|access-date=2015-05-21}}</ref> [[Generator (computer programming)|generator]] delegation,<ref>{{cite web|url=https://wiki.php.net/rfc/generator-delegation|title=PHP RFC: Generator Delegation|access-date=2015-05-21|website=php.net}}</ref> [[anonymous class]]es,<ref>{{cite web|url=https://wiki.php.net/rfc/anonymous_classes|title=PHP RFC: Anonymous Classes|access-date=2015-05-21|website=php.net}}</ref> simpler and more consistently available [[CSPRNG]] API,<ref>{{cite web|url=https://wiki.php.net/rfc/easy_userland_csprng|title=PHP RFC: Easy User-land CSPRNG|access-date=2015-05-21|website=php.net}}</ref> replacement of many remaining internal PHP "errors" with the more modern [[Exception (computer science)|exceptions]],<ref name="engine_exceptions">{{cite web|url=https://wiki.php.net/rfc/engine_exceptions_for_php7|title=PHP RFC: Exceptions in the engine (for PHP&nbsp;7)|access-date=2015-05-21|website=php.net}}</ref> and shorthand syntax for importing multiple items from a namespace.<ref>{{cite web|url=https://wiki.php.net/rfc/group_use_declarations|title=PHP RFC: Group Use Declarations|access-date=2015-05-21|website=php.net}}</ref>
|-
| {{نسخه |قج | ۷٫۱}}
سطر ۱۶۲ ⟵ ۱۶۱:
| ۹ آذر ۱۳۹۶
| ۱۰ آذر ۱۳۹۹<ref name="supportedversions"/>
| Object parameter and return type hint<ref>{{cite web|url=https://wiki.php.net/rfc/object-typehint|title=PHP: rfc:object-typehint|website=wiki.php.net}}</ref>,، Libsodium extension<ref>{{cite web|url=https://wiki.php.net/rfc/libsodium|title=PHP: rfc:libsodium|website=wiki.php.net}}</ref>,، Abstract method overriding<ref>{{cite web|url=https://wiki.php.net/rfc/allow-abstract-function-override|title=PHP: rfc:allow-abstract-function-override|website=wiki.php.net}}</ref>,، Parameter type widening<ref>{{cite web|url=https://wiki.php.net/rfc/parameter-no-type-variance|title=PHP: rfc:parameter-no-type-variance|website=wiki.php.net}}</ref>
|-
| {{نسخه |جا | ۷٫۳}}
| ۱۵ آذر ۱۳۹۷<ref>{{cite web|url=https://wiki.php.net/todo/php73|title=PHP: todo:php73|website=wiki.php.net}}</ref>
| ۱۵ آذر ۱۴۰۰
| Flexible [[Here_documentHere document#PHP|Heredoc]] and Nowdoc syntax<ref>{{cite web|url=https://wiki.php.net/rfc/flexible_heredoc_nowdoc_syntaxes|title=PHP: rfc:flexible_heredoc_nowdoc_syntaxes|website=wiki.php.net}}</ref>,، support for reference assignment and array deconstruction with list()<ref>{{cite web|url=https://wiki.php.net/rfc/list_reference_assignment|title=PHP: rfc:list_reference_assignment|website=wiki.php.net}}</ref>,، PCRE2 support<ref>{{cite web|url=https://wiki.php.net/rfc/pcre2-migration|title=PHP: rfc:pcre2-migration|website=wiki.php.net}}</ref>,، hrtime() function<ref>{{cite web|url=http://php.net/manual/en/function.hrtime.php|title=PHP: hrtime - Manual|website=php.net}}</ref>
|-
| colspan="4" | <small>{{نسخه|ا|نمایاندن=۱۱۱۱۱۱}}</small>
|}
 
از تاریخ ۲۸ جون سال ۲۰۱۱ میلادی، گروه پی‌اچ‌پی برنامه‌ای مدون برای انتشار نسخه‌های آیندهٔ این زبان را منتشر کرد.<ref name="release" /> بر اساس این برنامه هر ماه یک انتشار جزئی و هر سال یک انتشار اصلی اتفاق خواهد افتاد. از هر نسخه از پی‌اچ‌پی تا ۳ سال پشتیبانی می‌شود. تا ۲ سال تمامی به‌روزرسانی‌ها و سال سوم تنها به‌روزرسانی‌های امنیتی برای هر نسخه منتشر می‌شود.
 
== ساختار ==
سطر ۲۲۲ ⟵ ۲۲۱:
</source>
 
در نسخهٔ ۵٫۲ و نسخه‌های قبل آن توابع دست اول نبوده و تنها به‌صورت مستقیم یا غیرمستقیم با نام‌شان قابل فراخوانی هستند.<ref name="functions">{{یادکرد |نویسنده = |نشانی= http://www.php.net/manual/en/language.functions.php|عنوان= PHP: Functions| ناشر = PHP Manual|تاریخ = |تاریخ بازبینی= October 22, 2013|زبان=en}}</ref> توابع پی‌اچ‌پی می‌توانند بدون نوشتن نمونه اولیه (Prototype) تعریف شوند.<ref name="functions" /> تعریف توابع می‌تواند در درون بلاک‌های شرطی قرار بگیرند تا در شرایط خاص تعریف شود. تمامی توابع پی‌اچ‌پی در هنگام فراخوانی باید در جلوی خود پرانتز داشته‌باشند. متغیرهایی که با دستور new ساخته می‌شوند در صورتی آرگومان نداشته‌باشند، از این قاعده مستثنی هستند. پی‌اچ‌پی قابلیت تعریف توابع بدون نام را ندارد اما می‌توان با قرار دادن نام یک تابع در متغیر، تابع را به‌صورت غیرمستقیم فراخوانی کرد.<ref name="functions" />
 
از نسخهٔ ۵٫۳ به بعد می‌توان با استفاده از قابلیت [[بستار (علوم رایانه)|بستار]] (Closure)، توابع بدون‌اسم را به صورت زیر تعریف کرد:
سطر ۲۵۴ ⟵ ۲۵۳:
 
=== اشیاء ===
قابلیت [[برنامه‌نویسی شیءگرا]]یی به‌صورت ابتدایی در نسخهٔ ۳ به زبان پی‌اچ‌پی افزوده و در نسخهٔ ۴ بهتر شد.<ref name="history" /> این قابلیت که در نسخهٔ ۵ کاملاً بازنویسی شده‌بود با افزایش قابلیت‌ها و بهبود عمل‌کرد در درون زبان قرار گرفت.<ref name="php5_oo">{{یادکرد |نویسنده = Michael Tsai|نشانی= http://mjtsai.com/blog/2004/07/15/php-5-object-references/|عنوان= PHP5 Object References| ناشر = |تاریخ = July 15, 2004|تاریخ بازبینی= October 24, 2013|زبان=en}}</ref> در نسخه‌های قبلی پی‌اچ‌پی، با اشیأ مانند یک نوع داده برخورد می‌شد.<ref name="php5_oo" /> بنابراین باید در هر بار مقداردهی یا ارسال شیء به یک تابع، کل محتویات شیء در یک فضای حافظه جدید کپی شود. اما در نسخهٔ ۵ نحوهٔ مدیریت اشیأ تغییر کرد. از این پس اشیأ با یک اشاره‌گر به فضای حافظه مشخص می‌شوند نه با مقادیرشان. در کنار این بهبودها مفاهیم جدیدی مانند متغیرهای شخصی (Private member variables) و عمومی (Public member variables) و همچنین کلاس‌های انتزاعی (Abstract Class)، کلاس‌های نهایی (Final Class) وبسیاری موارد دیگر نیز معرفی شدند. نحوهٔ تعریف متدهای سازنده (Constructors) و تخرب‌کننده (Destructors) نیز مانند [[زبان سی++]] استانداردسازی شد و راه حلی برای [[مدیریت استثنا|مدیریت خطاها و استثناها]] ارائه گردید. علاوه‌بر این موارد، پی‌اچ‌پی ۵ قابلیت استفاده از اینترفس‌ها (Interface) را نیز معرفی و از پیاده‌سازی چندین اینترفیس در یک کلاس پشتیبانی کرد. در این میان اینترفیس‌های خاصی برای برقرار کردن رابطه با ساختارهای زبان به‌وجود آمدند. برا مثال با کلاس‌هایی که اینترفیس <code>ArrayAccess</code> را پیاده‌سازی کنند، می‌توان مانند آرایه‌ها برخورد کرد.<ref>{{یادکرد |نویسنده = |نشانی= http://www.php.net/zend-engine-2.php|عنوان= PHP: Classes and Objects| ناشر = PHP Manual|تاریخ = |تاریخ بازبینی= October 30, 2013|زبان=en}}</ref>
 
اگر شخص [[برنامه‌نویس]] با استفاده از کلمهٔ کلیدی <code>clone</code> سعی کند که یک شیء را کپی کند، [[موتور زند]] ابتدا بررسی می‌کند که متد <code>__clone</code> در درون کلاس تعریف شده‌است یا خیر. در صورتی که تعریف نشده‌باشد، متد پیش‌فرض <code>__clone</code> فراخوانی می‌شود که تمامی خصوصیات کلاس را کپی می‌کند. اما اگر این متد در کلاس وجود داشته‌باشد، مسئولیت کپی کردن و مقداردهی در کلاس کپی‌شده بر عهدهٔ این متد خواهد بود.<ref>{{یادکرد |نویسنده = |نشانی= http://www.php.net/language.oop5.cloning|عنوان= PHP: Object Cloning| ناشر = PHP Manual|تاریخ = |تاریخ بازبینی= October 30, 2013|زبان=en}}</ref>
سطر ۳۰۴ ⟵ ۳۰۳:
 
== پروانه انتشار ==
پی‌اچ‌پی یک [[نرم‌افزار آزاد]] است که با [[پروانه پی‌اچ‌پی]] منتشر می‌شود.<ref name="license" /> این پروانه علاوه بر قوانین موجود در [[نرم‌افزار آزاد|نرم‌افزارهای آزاد]] اعلام می‌دارد که:
:تمامی محصولاتی که بر پایهٔ پی‌اچ‌پی گسترش می‌یابند، نباید بدون اجازهٔ قبلی از group@php.net از نام "PHP" برای نام‌گذاری استفاده کنند. شما می‌توانید با قرار دادن کلمهٔ "for PHP" (به‌معنای برای پی‌اچ‌پی) در نام محصول خود نشان دهید که محصول شما با زبان پی‌اچ‌پی کار می‌کند. مثلاً استفاده از نام "PHP Foo" غیرمجاز است، در حالی‌که استفاده از "Foo for PHP" بدون مشکل خواهد بود.
 
سطر ۳۱۲ ⟵ ۳۱۱:
به‌طور کلی دو روش اصلی برای نصب زبان پی‌اچ‌پی بر روی [[سرور وب|سرورهای وب]] وجود دارد. در بسیاری از سرورهای وب یک ماژول مستقیم به نام Server Application Programming Interface یا SAPI وجود دارد. برای مثال سرورهای [[کارساز اچ‌تی‌تی‌پی آپاچی|آپاچی]]، مایکروسافت آی‌آی‌اس و آی‌پلنت (iPlanet) از این روش استفاده می‌کنند. تعدادی دیگر از سرورهای وب نیز از Internet Server Application Programming Interface یا ISAPI پشتیبانی می‌کنند. اگر زبان پی‌اچ‌پی در سرور وب ماژولی نداشته‌باشد، همواره می‌توان از آن به عنوان Common Gateway Interface یا CGI و FastCGI استفاده کرد. در این حالت باید سرور را تنظیم کرد تا تمامی درخواست‌های مربوط به زبان پی‌اچ‌پی را با فایل‌های CGI اجرا کند.<ref name="install">{{یادکرد |نویسنده = |نشانی=http://www.php.net/manual/en/install.general.php |عنوان= PHP: General Installation Consideration| ناشر = PHP Website|تاریخ = |تاریخ بازبینی= November 28, 2013|زبان=en}}</ref>
 
برای نوشتن برنامه‌های دارای [[رابط گرافیکی کاربر|رابط گرافیکی]] نیز می‌توان از افزونهٔ PHP-GTK در زبان پی‌اچ‌پی استفاده کرد. این افزونه در نسخهٔ منتشر شده موجود نیست و باید به این زبان افزوده‌شود.<ref name="install" /> برای استفاده از این افزونه، نسخهٔ پی‌اچ‌پی باید بالاتر از ۵٫۱ باشد. رایج‌ترین روش برای نصب این افزونه، ترجمهٔ کد آن می‌باشد.<ref>{{یادکرد |نویسنده = |نشانی=http://gtk.php.net/manual/en/tutorials.installation.php |عنوان= PHP-GTK2 Installation| ناشر = |تاریخ = |تاریخ بازبینی= December 1, 2013|زبان=en}}</ref>
 
هنگامی که از زبان پی‌اچ‌پی در محیط‌های [[محاسبات ابری|ابری]] استفاده می‌شود، [[کیت توسعه نرم‌افزار|کیت‌های توسعه نرم‌افزار]] (SDK) خاصی برای استفاده از امکانات محیط نیز همراه با آن منتشر می‌گردد. برای مثال:
سطر ۳۲۵ ⟵ ۳۲۴:
 
== جستارهای وابسته ==
 
* [[طراحی وب]]
* [[اچ‌تی‌ام‌ال]]
سطر ۳۶۲ ⟵ ۳۶۰:
[[رده:نرم‌افزارهای پی‌اچ‌پی]]
[[رده:نرم‌افزارهای چندسکویی]]
[[رده:نوشتارهای صوتی]]
[[رده:واژگان اینترنت]]