PHP

لغة PHP هي لغة برمجة نصية متعددة الأغراض موجهة لتطوير مواقع الويب . [ 11 ] أنشأها المبرمج الدنماركي الكندي راسموس ليردورف عام 1993، وأُصدرت عام 1995. [ 12 ] [ 13 ] تتولى مجموعة PHP حاليًا إنتاج النسخة المرجعية للغة PHP. [ 14 ] كانت PHP في الأصل اختصارًا لعبارة Personal Home Page (صفحة شخصية )، ولكنها الآن اختصار لعبارة PHP : Hypertext Preprocessor (معالج النصوص التشعبية ) . [ 15 ] : 14

عادةً ما تتم معالجة كود PHP على خادم الويب بواسطة مُفسِّر PHP مُنفَّذ كوحدة نمطية ، أو كخدمة ، أو كملف تنفيذي لواجهة البوابة العامة (CGI). على خادم الويب، يمكن أن تُشكِّل نتيجة تفسير وتنفيذ كود PHP - والتي قد تكون أي نوع من البيانات، مثل HTML المُولَّد أو بيانات الصور الثنائية - استجابة HTTP كاملة أو جزءًا منها . توجد أنظمة قوالب ويب متنوعة ، وأنظمة إدارة محتوى ويب ، وأطر عمل ويب يُمكن استخدامها لتنظيم أو تسهيل توليد هذه الاستجابة. يُمكن استخدام PHP لمهام برمجية خارج سياق الويب، على الرغم من ندرة استخداماتها في غير سياق الويب. كما يُمكن تنفيذ كود PHP مباشرةً من سطر الأوامر .

يُعدّ مُفسّر لغة PHP القياسي، المدعوم بمحرك Zend ، برنامجًا مجانيًا مُرخصًا بموجب رخصة PHP . وقد تمّ نقل PHP على نطاق واسع، ويمكن نشره على معظم خوادم الويب على أنظمة تشغيل ومنصات متنوعة .

تاريخ

تطورت لغة PHP في البداية بدون مواصفات أو معايير رسمية مكتوبة، حيث كان التنفيذ الأصلي بمثابة المعيار الفعلي الذي سعت التنفيذات الأخرى إلى اتباعه.

راسموس ليردورف ، مبتكر لغة PHP؛ وأندي غوتمانز وزيف سوراسكي ، مبتكرا محرك Zend

التاريخ المبكر (1993 إلى 1997)

بدأ تطوير لغة PHP في عام 1993 [ 12 ] عندما كتب راسموس ليردورف عدة برامج لواجهة البوابة العامة (CGI) بلغة C ، [ 16 ] [ 17 ] والتي استخدمها لإدارة صفحته الشخصية . قام بتوسيعها للعمل مع نماذج HTML والتواصل مع قواعد البيانات ، وأطلق على هذا التطبيق اسم "مفسر الصفحة الشخصية/النماذج" أو PHP/FI.

مثال على صيغة PHP المبكرة : [ 18 ]

<!--include /text/header.html--><!--getenv HTTP_USER_AGENT--> <!--if substr $exec_result Mozilla--> مهلاً، أنت تستخدم نتسكيب! <p> < ! --endif--><!-- قاعدة بيانات SQL SELECT * FROM table WHERE user='$username' --> <!-- ifless $numentries 1 --> عذرًا ، هذا السجل غير موجود <p> < ! -- endif exit --> مرحبًا <!-- $user --> ! <p> لديك < ! -- $index:0 --> رصيد متبقٍ في حسابك. <p><!--include /text/footer.html-->

يمكن استخدام PHP/FI لبناء تطبيقات ويب بسيطة وديناميكية . ولتسريع عملية الإبلاغ عن الأخطاء وتحسين الكود، أعلن ليردورف مبدئيًا عن إصدار PHP/FI تحت اسم "أدوات الصفحة الرئيسية الشخصية (أدوات PHP) الإصدار 1.0" على مجموعة نقاش يوزنت comp.infosystems.www.authoring.cgi في 8 يونيو 1995. [ 1 ] [ 19 ] تضمن هذا الإصدار وظائف أساسية مثل متغيرات شبيهة بمتغيرات لغة بيرل ، ومعالجة النماذج، وإمكانية تضمين HTML . وبحلول ذلك الوقت، تغيرت بنية اللغة لتشبه بنية بيرل ، ولكنها كانت أبسط وأكثر محدودية وأقل اتساقًا. [ 20 ] [ 14 ]

لم يكن الهدف من لغة PHP في بداياتها أن تكون لغة برمجة جديدة ؛ بل نمت بشكل طبيعي، وقد لاحظ ليردورف لاحقًا: "لا أعرف كيف أوقفها [...] لم تكن هناك أي نية لكتابة لغة برمجة [...] ليس لدي أدنى فكرة عن كيفية كتابة لغة برمجة [...] كنت أضيف الخطوة المنطقية التالية باستمرار." [ 21 ] بدأ فريق التطوير بالتشكل، وبعد أشهر من العمل والاختبار التجريبي ، تم إصدار PHP/FI 2 رسميًا في نوفمبر 1997. [ 22 ]

إن حقيقة أن لغة PHP لم تُصمم في الأصل، بل طُوّرت بشكل تدريجي، أدت إلى عدم اتساق تسمية الدوال وترتيب معاملاتها. [ 23 ] في بعض الحالات، اختيرت أسماء الدوال لتتوافق مع المكتبات منخفضة المستوى التي كانت PHP "تغلفها"، [ 24 ] بينما في بعض الإصدارات المبكرة جدًا من PHP، استُخدم طول أسماء الدوال داخليًا كدالة تجزئة ، لذا اختيرت الأسماء لتحسين توزيع قيم التجزئة . [ 25 ]

PHP 3 و 4 (1998 إلى 2004)

مثال على كود PHP لنظام إدارة المحتوى WordPress .

أعاد زئيف سوراسكي وأندي غوتمانز كتابة المحلل اللغوي عام ١٩٩٧، وشكّلا بذلك أساس لغة PHP  3، وغيّرا اسم اللغة إلى الاختصار المتكرر PHP: Hypertext Preprocessor . [ ١٤ ] [ ٢٦ ] بعد ذلك، بدأت الاختبارات العامة للغة PHP  3، وتم إطلاقها رسميًا في يونيو ١٩٩٨. ثم شرع سوراسكي وغوتمانز في إعادة كتابة جوهر PHP، وأنتجا محرك Zend عام ١٩٩٩. [ ٢٧ ] كما أسّسا شركة Zend Technologies في رامات غان ، إسرائيل. [ ١٤ ]

في 22 مايو 2000، تم إصدار PHP 4.0، المدعوم بمحرك Zend Engine 1.0. [ 14 ] وبحلول أغسطس 2008، وصل هذا الفرع إلى الإصدار 4.4.9.  لم يعد تطوير PHP 4 جارياً، ولا توجد خطط لإصدار أي تحديثات أمنية. [ 28 ] [ 29 ]

إصدار PHP 5 المبكر (2004 إلى 2006)

في الأول من يوليو عام 2004، تم إصدار PHP 5.0، مدعومة بمحرك Zend Engine 2.0 الجديد. [ 14 ] تضمنت PHP  5.0 تغييرات كبيرة في اللغة، أبرزها نهج مُعاد تصميمه للبرمجة كائنية التوجه ، بالإضافة إلى المُكرِّرات والاستثناءات . [ 30 ]

تم إصدار PHP 5.1 و PHP 5.2 في السنوات التالية، مع إضافة تحسينات أصغر وميزات جديدة، مثل امتداد كائنات بيانات PHP (PDO) (الذي يحدد واجهة خفيفة الوزن ومتسقة للوصول إلى قواعد البيانات). في عام 2008،  أصبح PHP 5.x الإصدار المستقر الوحيد قيد التطوير.

توقفت العديد من مشاريع المصادر المفتوحة البارزة عن دعم PHP  4 في التعليمات البرمجية الجديدة اعتبارًا من 5 فبراير 2008، بسبب مبادرة GoPHP5، [ 31 ] التي قدمها اتحاد من مطوري PHP الذين يروجون للانتقال من PHP  4 إلى PHP  5. [ 32 ] [ 33 ]

PHP 6 و Unicode

كانت دوال السلاسل النصية الأصلية في PHP تعمل فقط على البايتات الخام، مما جعل استخدامها مع ترميزات الأحرف متعددة البايتات أمرًا صعبًا. [ 34 ] [ 35 ] في عام 2005، بدأ مشروع بقيادة أندريه زمييفسكي لتوفير دعم أصلي لليونيكود في جميع أنحاء PHP، وذلك من خلال تضمين مكتبة المكونات الدولية لليونيكود (ICU)، وتمثيل السلاسل النصية داخليًا باستخدام ترميز UTF-16 . [ 36 ] ولأن هذا سيؤدي إلى تغييرات جذرية في كل من البنية الداخلية للغة وفي كود المستخدم، فقد خُطط لإصداره كإصدار 6.0 من اللغة، إلى جانب ميزات رئيسية أخرى كانت قيد التطوير آنذاك. [ 37 ]

مع ذلك، أدى نقص المطورين الذين فهموا التغييرات اللازمة، ومشاكل الأداء الناجمة عن التحويل من وإلى ترميز UTF-16، الذي نادرًا ما يُستخدم في سياق الويب، إلى تأخيرات في المشروع. [ 38 ] ونتيجةً لذلك،  تم إصدار PHP 5.3 في عام 2009، وفي مارس 2010، تم التخلي رسميًا عن المشروع بشكله الحالي،  وتم إعداد إصدار PHP 5.4 ليحتوي على معظم الميزات المتبقية غير المتوافقة مع Unicode من PHP  6. [ 39 ] كانت الآمال الأولية معقودة على وضع خطة جديدة لدمج Unicode، ولكن بحلول عام 2014 لم يتم اعتماد أي منها.

لاحقًا PHP 5 (2009 إلى 2014)

نظرًا لاحتوائه على ميزات كان من المفترض في الأصل أن تكون جزءًا من الإصدار 6.0، فقد كان PHP 5.3 إصدارًا مهمًا، حيث أضاف دعمًا لمساحات الأسماء ، والإغلاقات ، والربط الثابت المتأخر ، [ 40 ] [ 41 ] والعديد من الإصلاحات والتحسينات للوظائف القياسية.

بعد التخلي رسميًا عن فرع يونيكود، تم اعتماد عملية إصدار جديدة في عام 2011، حيث تم التخطيط لدورة إصدار سنوية، مع تمييز واضح بين "إصدارات الميزات" (من xyz إلى x.y+1.z) و"الإصدارات الرئيسية" (من xyz إلى x+1.0.0). [ 42 ] تم تضمين الميزات المتبقية التي كان من المقرر إدراجها في الإصدار 6.0 في PHP 5.4، الذي صدر في مارس 2012، مثل دعم السمات و"صيغة المصفوفة المختصرة" الجديدة. تبع ذلك المزيد من التغييرات التدريجية في PHP 5.5 (يونيو 2013) و5.6 (أغسطس 2014).

بالنسبة لإصداري PHP 5.3 و5.4، كانت التوزيعات الثنائية الوحيدة المتاحة لنظام التشغيل Microsoft Windows هي إصدارات 32 بت IA-32 ، [ 43 ] [ 44 ] مما يتطلب وضع توافق Windows 32 بت عند استخدام خدمات معلومات الإنترنت (IIS) على منصة Windows 64 بت. أما إصدار PHP 5.5 فقد أتاح إصدارات x86-64 64 بت لنظام التشغيل Microsoft Windows. [ 45 ]

انتهى الدعم الأمني ​​الرسمي لـ PHP 5.6 في 31 ديسمبر 2018. [ 46 ]

PHP 7.x (2015 إلى 2019)

خلال عامي 2014 و2015، طُوِّر إصدار رئيسي جديد من لغة PHP، وهو PHP  7.0. وقد أثار ترقيم هذا الإصدار بعض الجدل بين المطورين الداخليين. [ 47 ] ورغم أن تجارب PHP  6 Unicode لم تُنشر رسميًا، فقد أشارت العديد من المقالات وعناوين الكتب إلى  أسماء PHP 6، مما قد يُسبب التباسًا في حال استخدام الاسم نفسه في إصدار جديد. [ 48 ]  وبعد التصويت، تم اختيار اسم PHP 7. [ 49 ]

كان أساس PHP  7.0 فرعًا من PHP أُطلق عليه في الأصل اسم PHP next generation ( phpng ). كتبه ديمتري ستوغوف، وشينشن هوي، ونيكيتا بوبوف، [ 50 ] وكان الهدف منه تحسين أداء PHP من خلال إعادة هيكلة محرك Zend مع الحفاظ على توافق شبه كامل مع اللغة. [ 51 ] بحلول 14 يوليو 2014، أظهرت معايير الأداء المستندة إلى WordPress ، والتي كانت بمثابة مجموعة المعايير الرئيسية لمشروع phpng، زيادة في الأداء تقارب 100%. تُسهّل التغييرات التي طرأت على phpng تحسين الأداء في الإصدارات المستقبلية، حيث تُعتبر هياكل البيانات الأكثر إحكامًا والتغييرات الأخرى أكثر ملاءمةً للانتقال الناجح إلى مُصرّف فوري (JIT). [ 52 ] نظرًا لهذه التغييرات الكبيرة، سُمّي محرك Zend المُعاد تصميمه Zend Engine 3 ، خلفًا لـ Zend Engine 2 المستخدم في PHP  5.x. [ 53 ]

تضمنت PHP 7.0 أيضًا تغييرات غير متوافقة مع الإصدارات السابقة، كما هو مسموح به في "الإصدارات الرئيسية" بموجب نظام الترقيم المتفق عليه في عام 2011. [ 42 ] شملت التغييرات في اللغة الأساسية معالجة أكثر اتساقًا لفك مرجعية المتغيرات، [ 54 ] وسلوكًا أكثر قابلية للتنبؤ للعبارة foreach، [ 55 ] واتساقًا بين المنصات في عمليات الإزاحة الثنائية [ 56 ] وتحويل الأعداد العشرية إلى أعداد صحيحة. [ 56 ] [ 57 ] تمت إزالة العديد من واجهات برمجة تطبيقات الخادم (SAPIs) والامتدادات غير المُصانة أو المهملة من نواة PHP، وأبرزها الامتداد القديم mysql. [ 58 ] كما تمت إزالة ميزات قديمة أخرى، مثل المحددات على نمط ASP <%و و . [ 59 ]%><script language="php"> ... </script>

شكّل إصدار PHP 7.0 بدايةً لتوسع نظام أنواع PHP. ففي PHP 5.x، كان تعريف الأنواع مقتصراً على معاملات الدوال، ولكن تم توسيع هذا ليشمل أنواع القيم المُعادة من الدوال في الإصدار 7.0، [ 60 ] وخصائص الكائنات في الإصدار 7.4 . [ 61 ] كما توسعت أنواع البيانات القابلة للتعبير، حيث أُضيفت الأنواع العددية (عدد صحيح، عدد عشري، سلسلة نصية، وقيمة منطقية) في الإصدار 7.0؛ [ 62 ]iterable والنوع، [ 63 ] والأنواع القابلة للتصفير، [ 64 ] ونوع voidالقيمة المُعادة . [ 65 ] جميعها في الإصدار 7.1؛ والنوع objectفي الإصدار 7.2. [ 66 ]

تهدف التغييرات الأخرى في هذه الفترة إلى إضافة تعبيرية إلى اللغة، مثل ??( null coalesce ) [ 67 ] و <=>"spaceship" مقارنة ثلاثية الاتجاه [ 68 ] في الإصدار 7.0؛ صيغة جديدة لفك مرجع المصفوفة [ 69 ] والتقاط أنواع استثناءات متعددة [ 70 ] في PHP 7.1؛ صيغة Heredoc و Nowdoc أكثر مرونة [ 71 ] في الإصدار 7.3؛ ومعامل تعيين null-coalescing [ 72 ] في الإصدار 7.4.

PHP 8.x (من عام 2020 فصاعدًا)

تم إصدار PHP  8.0 في 26 نوفمبر 2020، كإصدار رئيسي يتضمن تغييرات جذرية عن الإصدارات السابقة. [ 73 ] [ 74 ]

كان من أبرز التغييرات إضافة مُترجم JIT ، الذي يُمكنه توفير تحسينات كبيرة في الأداء لبعض حالات الاستخدام. [ 75 ] [ 76 ] وكان من المتوقع أن تكون التحسينات الكبيرة أكبر في العمليات الحسابية مقارنةً بحالات الاستخدام الشائعة في تطوير الويب. [ 77 ] بالإضافة إلى ذلك، تُتيح ميزة الأداء التي يُوفرها مُترجم JIT إمكانية نقل بعض التعليمات البرمجية من لغة C إلى لغة PHP. [ 78 ]

من الإضافات المهمة للغة في الإصدار 8.0 هي السمات ، التي تسمح بإضافة بيانات وصفية إلى عناصر البرنامج مثل الفئات والأساليب والمعاملات. [ 73 ] أضافت الإصدارات اللاحقة سمات مدمجة تُغير سلوك اللغة، مثل السمة في PHP 8.2، [ 79 ] وفي PHP 8.3، [ 80 ] وفي PHP 8.4، [ 81 ] والسمات و في PHP 8.5. [ 82 ] [ 83 ] [ 84 ]#[\SensitiveParameter]#[\Override]#[\Deprecated]#[\NoDiscard]#[\DelayedTargetValidation]

يُعدّ إضافة الأنواع المركبة امتدادًا هامًا لنظام أنواع اللغة: أنواع الاتحاد في PHP 8.0 (مثل "إما عدد صحيح أو سلسلة نصية")، [ 85 ] وأنواع التقاطع في PHP 8.1 (مثل " يجب أن تُطبّق القيمة كلا الواجهتين و ")، [ 86 ] وأنواع الصيغة العادية المنفصلة (DNF) في PHP 8.2 (اتحادات التقاطعات، مثل ). [ 87 ] كما أُضيفت كلمات مفتاحية خاصة إضافية للأنواع، مثل و في PHP 8.0، [ 73 ] ( نوع سفلي يُشير إلى أن الدالة لا تُعيد قيمة أبدًا) في PHP 8.1، [ 88 ] و و كأنواع مستقلة في PHP 8.2. [ 89 ] [ 90 ]int|stringTraversable&CountableTraversableCountablearray|(Traversable&Countable)mixedstaticnevernullfalsetrue

يُعدّ إضافة نظام أنواع غني جزءًا من اتجاه عام نحو لغة أكثر صرامة، وقد تضمن PHP 8.0 تغييرات جذرية في معالجة مقارنات السلاسل النصية بالأرقام، [ 91 ] والسلاسل النصية الرقمية، [ 92 ] وتوقيعات الدوال غير المتوافقة. [ 93 ] وقد أدخلت الإصدارات اللاحقة إشعارات إهمال لسلوكيات من المقرر أن تُعتبر تغييرات جذرية في إصدار رئيسي مستقبلي، مثل تمرير nullمعاملات الدوال الداخلية غير القابلة للتصفير [ 94 ] والإشارة إلى خصائص لم يتم تعريفها في الفئة. [ 95 ]

سجل الإصدارات

ابتداءً من 28 يونيو 2011، وضع فريق تطوير PHP جدولًا زمنيًا لإصدار نسخ جديدة من PHP. [ 42 ] وبموجب هذا النظام، يُفترض إصدار نسخة واحدة على الأقل شهريًا. كما يُفترض إصدار نسخة فرعية مرة واحدة سنويًا، والتي قد تتضمن ميزات جديدة. ويجب أن يحظى كل إصدار فرعي بدعم لمدة عامين على الأقل لإصلاحات الأمان والأخطاء، يليه عام واحد على الأقل مخصص لإصلاحات الأمان فقط، ليصبح إجمالي مدة عملية الإصدار ثلاث سنوات لكل إصدار فرعي. ولا يُسمح بإضافة أي ميزات جديدة، إلا إذا كانت صغيرة ومستقلة، في أي إصدار فرعي خلال فترة الثلاث سنوات. وقد مدد طلب التعليقات (RFC) الصادر عام 2024 مدة فترة إصلاحات الأمان فقط إلى عامين، وحدد جميع تواريخ انتهاء الدعم في 31 ديسمبر، وألغى الاستثناء الذي كان يسمح بإضافة ميزات "صغيرة ومستقلة" في إصدارات التصحيح. [ 193 ]

انتشار الإصدارات القديمة

أفادت شركة W3Techs أنه اعتبارًا من نوفمبر 2025 (بعد مرور حوالي ثلاث سنوات على إيقاف دعم PHP 7، و23 شهرًا على إصدار PHP 8.3)، لا تزال إصدارات غير مدعومة، مثل PHP 7، مستخدمة من قبل أكثر من نصف مواقع PHP ، وهي إصدارات قديمة ومعروفة بعدم أمانها. [ 194 ] [ 195 ] وشمل ذلك 9.7% من مواقع PHP التي تستخدم PHP 5، وهو إصدار أقدم (تم إيقاف دعمه منذ 7 سنوات) وغير آمن ، والذي صدر قبل أكثر من عقدين.    

جالب الحظ

النملة elePHPant، تميمة PHP

تميمة مشروع PHP هي الفيل الأزرق elePHPant ، الذي يحمل شعار PHP على جانبه، وقد صممه فينسنت بونتير [ 196 ] في عام 1998. [ 197 ] "كانت حروف (PHP) تشكل شكل فيل عند النظر إليها من زاوية جانبية." [ 198 ]

قد يختلف لون دمية elePHPants القطيفة أحيانًا . [ 199 ] وقد صُنعت العديد من النسخ المختلفة لهذه الشخصية على مر السنين. ولا تُعتبر رسميةً في أوساط محبيها إلا دمى elePHPants المُصممة وفقًا للتصميم الأصلي لفينسنت بونتير. [ 200 ] وتُعد هذه الدمى قطعًا قابلةً للاقتناء، وبعضها نادر للغاية. [ 201 ]

بناء الجملة

تطبيق "Hello, World" مكتوب بلغة PHP 7.4 ويعمل على خادم التطوير المدمج به

البرنامج التالي "Hello, World!" مكتوب بلغة PHP ومضمن في مستند HTML :

< ! DOCTYPE html > <html> <head> <title> برنامج PHP " Hello , World ! " </title> </head> <body> <p> < ? = ' Hello , World ! ' ? > </p> </body> </html>

لا يُنفّذ مُفسّر PHP إلا شيفرة PHP الموجودة داخل حدودها . أي شيء خارج هذه الحدود لا يُعالَج بواسطة PHP، مع العلم أن النص غير المكتوب بلغة PHP قد يخضع لهياكل التحكم الموضحة في شيفرة PHP. <?phpيُستخدم لفتح ?>وإغلاق أقسام PHP. يوجد اختصار لـ `<echo>` <?=، وهو اختصار لـ `<echo> `. [ 15 ] : 22-23، 46. يوجد أيضًا شكل مُختصر ، مما يجعل ملفات البرامج النصية أقل قابلية للنقل نظرًا لإمكانية تعطيل الدعم في إعدادات PHP المحلية. لهذا السبب، لا تُشجّع مجموعة PHP على استخدام الشكل المُختصر. [ 202 ] [ 203 ] في المقابل، لا توجد توصية ضد استخدام الوسم المُختصر `<echo>` . [ 204 ] قبل PHP 5.4.0، كان بناء الجملة المُختصر لـ `<echo>` يعمل فقط مع تمكين إعداد التكوين، بينما في PHP 5.4.0 والإصدارات الأحدث، يكون مُتاحًا دائمًا. [ 205 ] [ 206 ] [ 202 ] الغرض من المحددات هو فصل كود PHP عن المحتوى غير PHP، مثل كود JavaScript أو ترميز HTML. [ 207 ]<?phpecho<?<?= echoshort_open_tag 

يُنشئ الشكل الأول من المحددات، <?phpو ?>، في لغة XHTML وغيرها من مستندات XML ، تعليمات معالجة XML سليمة البنية. [ 208 ] وهذا يعني أن المزيج الناتج من كود PHP وعلامات التنسيق الأخرى في ملف جانب الخادم هو في حد ذاته XML سليم البنية.

تُسبق المتغيرات برمز الدولار ، ولا يلزم تحديد نوعها  مسبقًا. قدّم PHP 5 تعريفات الأنواع التي تسمح للدوال بفرض أن تكون مُعاملاتها كائنات من فئة مُحددة، أو مصفوفات، أو واجهات، أو دوال رد نداء . مع ذلك، قبل PHP  7، لم يكن بالإمكان استخدام تعريفات الأنواع مع الأنواع العددية مثل الأعداد الصحيحة أو السلاسل النصية. [ 62 ]

فيما يلي مثال على كيفية تعريف متغيرات PHP وتهيئتها.

<?php $name = 'John' ; // تعريف وتهيئته كمتغير من نوع سلسلة نصية $age = 18 ; // تعريف وتهيئته كمتغير من نوع عدد صحيح $height = 5.3 ; // تعريف وتهيئته كمتغير من نوع عدد عشري echo $name . ' is ' . $height . "m tall \n " ; // دمج المتغيرات والسلاسل النصية echo " $name is $age years old." ; // تحويل المتغيرات إلى سلسلة نصية ?>

على عكس أسماء الدوال والفئات، فإن أسماء المتغيرات حساسة لحالة الأحرف. تتيح كل من علامات الاقتباس المزدوجة ("") وسلاسل heredoc إمكانية إدراج قيمة المتغير في السلسلة. [ 209 ] يتعامل PHP مع أسطر جديدة كمسافات بيضاء كما في اللغات الحرة ، وتُنهى العبارات بفاصلة منقوطة. [ 210 ] يحتوي PHP على ثلاثة أنواع من التعليقات : /* */التعليقات الكتلية والتعليقات المضمنة؛ //أو #تُستخدم للتعليقات المكونة من سطر واحد. echoتُعد عبارة `<script>` إحدى الكلمات المفتاحية العديدة التي يوفرها PHP لإخراج النص. [ 15 ] : 24-26

من حيث الكلمات المفتاحية وبنية اللغة، تشبه لغة PHP بنية لغة C. ifأما الشروط forوالحلقات whileوقيم الإرجاع من الدوال، فهي متشابهة في بنيتها مع لغات مثل C وC++ وC# وجافا وبيرل. [ 211 ] [ 212 ] [ 213 ]

أنواع البيانات

لغة PHP ذات كتابة مرنة . تخزن الأعداد الصحيحة ضمن نطاق يعتمد على النظام الأساسي، إما كعدد صحيح مُوقّع 32 أو 64 أو 128 بت، وهو ما يُعادل نوع البيانات long في لغة C. يتم تحويل الأعداد الصحيحة غير المُوقّعة إلى قيم مُوقّعة في بعض الحالات، وهو سلوك يختلف عن العديد من لغات البرمجة الأخرى. [ 214 ] يمكن إسناد قيم لمتغيرات الأعداد الصحيحة باستخدام الترميز العشري (الموجب والسالب)، والثماني ، والسداسي عشري ، والثنائي . [ 215 ]

تُخزَّن الأرقام العشرية أيضًا في نطاق خاص بكل منصة. ويمكن تحديدها باستخدام ترميز الأرقام العشرية، أو شكلين من أشكال الترميز العلمي . [ 216 ] تحتوي لغة PHP على نوع منطقي أصلي مشابه للأنواع المنطقية الأصلية في لغتي Java و C++ . وباستخدام قواعد تحويل النوع المنطقي، تُفسَّر القيم غير الصفرية على أنها صحيحة، والصفر على أنه خاطئ، كما هو الحال في لغتي Perl وC++. [ 216 ]

يمثل نوع البيانات الفارغ متغيرًا ليس له قيمة؛ NULLوهي القيمة الوحيدة المسموح بها لهذا النوع من البيانات. [ 216 ]

تمثل المتغيرات من نوع "المورد" مراجع لموارد من مصادر خارجية. وعادةً ما يتم إنشاؤها بواسطة دوال من امتداد معين، ولا يمكن معالجتها إلا بواسطة دوال من نفس الامتداد؛ ومن الأمثلة على ذلك موارد الملفات والصور وقواعد البيانات. [ 216 ]

يمكن أن تحتوي المصفوفات على عناصر من أي نوع يدعمه PHP، بما في ذلك الموارد والكائنات وحتى المصفوفات الأخرى. ويُحافظ على الترتيب في قوائم القيم وفي الجداول التي تحتوي على كلٍ من المفاتيح والقيم، ويمكن دمج النوعين معًا. [ 216 ] كما يدعم PHP السلاسل النصية ، والتي يمكن استخدامها مع علامات اقتباس مفردة أو مزدوجة، أو باستخدام صيغة nowdoc أو heredoc . [ 217 ]

تحاول مكتبة PHP القياسية ( SPL) حل المشكلات القياسية وتنفيذ واجهات وفئات فعالة للوصول إلى البيانات. [ 218 ]

الوظائف

تُعرّف لغة PHP مجموعة كبيرة من الدوال في لغتها الأساسية، والعديد منها متوفر أيضًا في امتدادات مختلفة؛ وهذه الدوال موثقة جيدًا في وثائق PHP المتاحة على الإنترنت. [ 219 ] ومع ذلك، فإن المكتبة المدمجة تحتوي على مجموعة واسعة من اصطلاحات التسمية وما يرتبط بها من تناقضات، كما هو موضح في قسم التاريخ أعلاه.

يمكن للمطور تعريف وظائف مخصصة:

دالة myAge ( int $birthYear ) : string { // حساب العمر بطرح سنة الميلاد من السنة الحالية. $yearsOld = date ( 'Y' ) - $birthYear ;// إرجاع العمر في سلسلة نصية وصفية. return $yearsOld . ( $yearsOld == 1 ? 'year' : 'years' ); }echo 'عمري حاليًا ' . myAge ( 1995 ) . ' ' . ' . ' . ' .

اعتبارًا من عام 2026 ، ستكون نتيجة البرنامج النموذجي أعلاه هي "عمري حاليًا 31 عامًا".

بدلاً من مؤشرات الدوال ، يمكن الإشارة إلى الدوال في PHP باستخدام سلسلة نصية تحتوي على اسمها. وبهذه الطريقة، يمكن استخدام دوال PHP العادية، على سبيل المثال، كدوال رد نداء أو ضمن جداول الدوال . [ 220 ] يمكن إنشاء دوال معرفة من قبل المستخدم في أي وقت دون الحاجة إلى تعريف نموذج أولي لها . [ 219 ] [ 220 ] يمكن تعريف الدوال داخل كتل برمجية، مما يسمح باتخاذ قرار في وقت التشغيل بشأن ما إذا كان ينبغي تعريف دالة أم لا. توجد function_existsدالة تحدد ما إذا كانت دالة باسم معين قد تم تعريفها مسبقًا. يجب استخدام الأقواس عند استدعاء الدوال، باستثناء دوال إنشاء الفئات التي لا تأخذ أي وسيط والتي يتم استدعاؤها باستخدام عامل PHP new، حيث تكون الأقواس اختيارية في هذه الحالة.

منذ إصدار PHP  4.0.1 create_function()، سمحت طبقة تغليف بسيطة حول eval()بإنشاء دوال PHP عادية أثناء تنفيذ البرنامج؛ تم إهمالها في PHP  7.2 وإزالتها في PHP  8.0 [ 221 ] لصالح صيغة الدوال المجهولة أو " الإغلاقات " [ 222 ] التي يمكنها التقاط المتغيرات من النطاق المحيط، والتي أضيفت في PHP  5.3. أُضيفت صيغة السهم المختصرة في PHP  7.4: [ 223 ]

دالة getAdder ( $x ) { return fn ( $y ) => $x + $y ; }$adder = getAdder ( 8 ); echo $adder ( 2 ); // يطبع "10"

في المثال أعلاه، getAdder()تُنشئ الدالة إغلاقًا باستخدام الوسيط المُمرَّر $x، والذي يأخذ وسيطًا إضافيًا $y، ثم يُعيد الإغلاق المُنشأ إلى المُستدعي. تُعتبر هذه الدالة كائنًا من الدرجة الأولى، مما يعني أنه يُمكن تخزينها في متغير، وتمريرها كمعامل إلى دوال أخرى، وما إلى ذلك. [ 224 ]

على غير المعتاد في لغات البرمجة الديناميكية، يدعم PHP تعريف أنواع البيانات لمعاملات الدوال، والتي تُفرض أثناء التشغيل. يدعم PHP هذا الأمر الأصناف والواجهات منذ الإصدار  5.0، والمصفوفات منذ الإصدار  5.1، والأنواع القابلة للاستدعاء منذ الإصدار  5.4، والأنواع العددية (الأعداد الصحيحة، والأعداد العشرية، والسلاسل النصية، والقيم المنطقية) منذ الإصدار  7.0. [ 62 ] كما يدعم PHP  7.0 تعريف أنواع البيانات لقيم الإرجاع للدوال، وذلك بوضع اسم النوع بعد قائمة المعاملات، مسبوقًا بنقطتين رأسيتين. [ 60 ] على سبيل المثال، getAdderيمكن إضافة تعليقات توضيحية لأنواع البيانات للدالة المذكورة في المثال السابق في PHP  7 كما يلي:

دالة getAdder ( int $x ) : Closure { return fn ( int $y ) : int => $x + $y ; }$adder = getAdder ( 8 ); echo $adder ( 2 ); // يطبع "10" echo $adder ( null ); // يطرح استثناءً بسبب تمرير نوع غير صحيح $adder = getAdder ([]); // سيطرح استثناءً أيضًا

بشكل افتراضي، تتبع تعريفات الأنواع العددية مبادئ الكتابة الضعيفة. فعلى سبيل المثال، إذا كان نوع مُعامل ما هو عدد صحيح int، فإن PHP يسمح ليس فقط بتمرير الأعداد الصحيحة، بل أيضًا السلاسل العددية القابلة للتحويل، والأعداد العشرية، والقيم المنطقية إلى تلك الدالة، ويقوم بتحويلها. [ 62 ] مع ذلك، يحتوي PHP  7 على وضع "الكتابة الصارمة" الذي يمنع، عند استخدامه، إجراء مثل هذه التحويلات لاستدعاءات الدوال وقيم الإرجاع داخل الملف. [ 62 ]

كائنات PHP

أُضيفت وظائف البرمجة الكائنية الأساسية في PHP  3، وجرى تحسينها في PHP  4. [ 14 ] وقد أتاح ذلك لـ PHP اكتساب المزيد من التجريد، مما سهّل المهام الإبداعية للمبرمجين الذين يستخدمون اللغة. أُعيدت كتابة معالجة الكائنات بالكامل في PHP  5، مما وسّع مجموعة الميزات وحسّن الأداء. [ 225 ] في الإصدارات السابقة من PHP، كانت الكائنات تُعالج كأنواع قيم . [ 225 ] كان عيب هذه الطريقة هو اضطرار الكود إلى استخدام متغيرات "المرجع" في PHP بكثرة إذا أراد تعديل كائن مُمرّر إليه، بدلاً من إنشاء نسخة منه. في النهج الجديد، يُشار إلى الكائنات بواسطة المعرّف (handle )، وليس بواسطة القيمة. [ 226 ]

قدّمت لغة PHP 5 متغيرات وأعضاء  خاصة ومحمية ، بالإضافة إلى الفئات المجردة ، والفئات النهائية ، والأساليب المجردة ، والأساليب النهائية . كما قدّمت طريقة قياسية لتعريف المُنشئات والمُدمّرات ، على غرار لغات البرمجة الكائنية الأخرى مثل C++ ، ونموذجًا قياسيًا لمعالجة الاستثناءات . علاوة على ذلك، أضافت PHP 5 الواجهات ، وسمحت بتنفيذ واجهات متعددة. توجد واجهات خاصة تُمكّن الكائنات من التفاعل مع نظام التشغيل. يمكن استخدام الكائنات التي تُنفّذ واجهة ArrayAccess مع صيغة المصفوفات ، بينما يمكن استخدام الكائنات التي تُنفّذ واجهة Iterator أو IteratorAggregate مع بنية اللغة . لا توجد ميزة الجداول الافتراضية في المحرك، لذا يتم ربط المتغيرات الثابتة باسم بدلاً من مرجع في وقت الترجمة. [ 227 ] foreach

إذا أنشأ المطور نسخة من كائن باستخدام الكلمة المحجوزة clone، فسيتحقق محرك Zend مما إذا __clone()كانت هناك دالة مُعرَّفة. إذا لم تكن مُعرَّفة، فسيستدعي دالة افتراضية __clone()تنسخ خصائص الكائن. أما إذا __clone()كانت الدالة مُعرَّفة، فستكون مسؤولة عن تعيين الخصائص اللازمة في الكائن المُنشأ. ولتسهيل الأمر، سيوفر المحرك دالة تستورد خصائص الكائن الأصلي، بحيث يمكن للمبرمج البدء بنسخة طبق الأصل من الكائن الأصلي وتعديل الخصائص التي تحتاج إلى تغيير فقط. [ 228 ]

تُحدد إمكانية الوصول إلى خصائص وأساليب PHP باستخدام الكلمات المفتاحيةpublic ` private` privateو`private` و` protectedprivate`. القيمة الافتراضية هي `public`، إذا تم استخدام `var`var فقط؛ `private` مرادف لـ `private` . يمكن الوصول إلى publicالعناصر المُعلنة من أي مكان. `private` يحد من الوصول إلى الفئات الموروثة (وإلى الفئة التي تُعرّف العنصر). `private` يحد من إمكانية الوصول إلى الفئة التي تُعرّف العنصر فقط. [ 229 ] يمكن للكائنات من نفس النوع الوصول إلى الأعضاء الخاصة والمحمية لبعضها البعض حتى لو لم تكن نفس النسخة. [ 230 ]publicprotectedprivate

مثال

فيما يلي مثال أساسي على البرمجة الكائنية في PHP  8:

<?phpفئة مجردة للمستخدم{سلسلة محمية $name ;public function __construct ( string $name ){// اجعل الحرف الأول كبيرًا وبقية الأحرف صغيرة$this- > name = ucfirst ( strtolower ( $name ));}public function greet () : string{return "مرحباً، اسمي هو " . $this -> name ;}دالة عامة مجردة job () : سلسلة نصية ؛}فئة الطالب ترث من فئة المستخدم{public function __construct ( string $name , private string $course ){parent :: __construct ( $name );}public function job () : string{return "أتعلم" . $this- > course ;}}يمتد صف المعلم من فئة المستخدم{public function __construct ( string $name , private array $teachingCourses ){parent :: __construct ( $name );}public function job () : string{return "أنا أُدرّس" . implode ( "", "" , $this- > teachingCourses );}}$students = [طالب جديد ( "أليس" ، "علوم الحاسوب" ) ،طالب جديد ( "بوب" ، "علوم الحاسوب" ) ،طالب جديد ( "تشارلي" ، "دراسات الأعمال" )];$teachers = [مدرس جديد ( "دان" ، [ "علوم الحاسوب" ، "أمن المعلومات" ] )،معلمة جديدة ( "إيرين" ، [ "علوم الحاسوب" ، "برمجة الرسومات ثلاثية الأبعاد" ] )،مدرس جديد ( "فرانكي" ، [ "التسويق الإلكتروني" ، "دراسات الأعمال" ، "التجارة الإلكترونية" ])،];foreach ([ $students , $teachers ] as $users ) {echo $users [ 0 ] :: class . "s: \n " ;array_walk ( $users , function ( User $user ) {echo " { $user -> greet () } , { $user -> job () } \n " ;});}

يُخرج هذا البرنامج ما يلي:

الطلاب: مرحباً، اسمي أليس، أدرس علوم الحاسوب. مرحباً، اسمي بوب، أدرس علوم الحاسوب. مرحباً، اسمي تشارلي، أدرس إدارة الأعمال. المعلمون: مرحباً، اسمي دان، أدرّس علوم الحاسوب وأمن المعلومات. مرحباً، اسمي إيرين، أدرّس علوم الحاسوب وبرمجة الرسومات ثلاثية الأبعاد. مرحباً، اسمي فرانكي، أدرّس التسويق الإلكتروني وإدارة الأعمال والتجارة الإلكترونية.

التطبيقات

التطبيق الكامل الوحيد للغة PHP هو النسخة الأصلية، والمعروفة ببساطة باسم PHP. وهي الأكثر استخدامًا، وتعتمد على محرك Zend . ولتمييزها عن التطبيقات الأخرى، يُطلق عليها أحيانًا اسم "Zend PHP" بشكل غير رسمي. يقوم محرك Zend بتحويل كود PHP المصدري ديناميكيًا إلى صيغة داخلية قابلة للتنفيذ، وبالتالي يعمل كمفسر . [ 231 ] [ 232 ] كما يُعد "التطبيق المرجعي" للغة PHP، نظرًا لعدم وجود مواصفات رسمية للغة PHP، وبالتالي فإن دلالات Zend PHP هي التي تحدد دلالات PHP. ونظرًا لتعقيد دلالات PHP ودقتها، والتي يُحددها أسلوب عمل Zend، يصعب على التطبيقات المنافسة توفير توافق كامل. [ 233 ]

يؤدي نموذج PHP الذي يعتمد على طلب واحد لكل تنفيذ نص برمجي، وكون محرك Zend مُفسِّرًا، إلى انخفاض الكفاءة؛ ونتيجةً لذلك، طُوِّرت منتجاتٌ عديدة لتحسين أداء PHP. ولتسريع وقت التنفيذ وتجنب إعادة تجميع كود PHP المصدر في كل مرة يتم فيها الوصول إلى صفحة الويب، يمكن أيضًا نشر نصوص PHP البرمجية بتنسيق محرك PHP الداخلي باستخدام ذاكرة تخزين مؤقتة لرموز العمليات ، والتي تعمل عن طريق تخزين الشكل المُجمَّع لنص PHP البرمجي (رموز العمليات) في الذاكرة المشتركة لتجنب عبء تحليل وتجميع الكود في كل مرة يُشغَّل فيها النص البرمجي. ذاكرة تخزين مؤقتة لرموز العمليات، Zend Opcache ، مُدمجة في PHP منذ الإصدار 5.5. [ 234 ] مثال آخر على ذاكرة تخزين مؤقتة لرموز العمليات شائعة الاستخدام هو Alternative PHP Cache (APC)، وهو مُتاح كامتداد لـ PECL . [ 235 ]

على الرغم من أن Zend PHP لا يزال التطبيق الأكثر شيوعًا، فقد تم تطوير العديد من التطبيقات الأخرى. بعض هذه التطبيقات عبارة عن مُجمِّعات أو تدعم الترجمة الفورية (JIT) ، وبالتالي توفر مزايا في الأداء مقارنةً بـ Zend PHP على حساب عدم التوافق الكامل مع PHP. تشمل التطبيقات البديلة ما يلي:

  • آلة HHVM (آلة الهيب هوب الافتراضية)  - طُوّرت في فيسبوك ومتاحة كمصدر مفتوح، تُحوّل شيفرة PHP إلى بايت كود عالي المستوى (يُعرف عادةً باللغة الوسيطة )، ثم تُترجم إلى شيفرة آلة x86-64 ديناميكيًا أثناء التشغيل بواسطة مُترجم فوري (JIT)، مما يُحسّن الأداء حتى 6 أضعاف. [ 236 ] مع ذلك، منذ الإصدار 7.2، تفوّق Zend على HHVM، [ 237 ] ويُعدّ HHVM  3.24 آخر إصدار يدعم PHP رسميًا. [ 238 ]
    • HipHop  – طُوِّرَتْ في فيسبوك وهي متاحة كمصدر مفتوح، تُحوِّلُ نصوص PHP البرمجية إلى كود C++ ثم تُجمِّع الكود الناتج، مما يُخفِّض حمل الخادم بنسبة تصل إلى 50%. في أوائل عام 2013، أوقفت فيسبوك دعمها لصالح HHVM لأسباب متعددة، منها صعوبات النشر وعدم دعم لغة PHP بالكامل، بما في ذلك بنيتي `<p>` create_function()و`<p> eval()`. [ 239 ]
  • Parrot  – آلة افتراضية مصممة لتشغيل اللغات الديناميكية بكفاءة؛ يقوم المترجم المتقاطع Pipp بتحويل كود مصدر PHP إلى تمثيل وسيط Parrot ، والذي يتم ترجمته بعد ذلك إلى بايت كود Parrot وتنفيذه بواسطة الآلة الافتراضية.
  • بيتش باي – مُترجم من الجيل الثاني إلى بايت كود لغة .NET الوسيطة المشتركة (CIL)، مبني على منصة روسلين ؛ وهو خليفة فالانجر، ويشترك معه في العديد من المكونات المعمارية.
  • فالانجر  – يقوم بتحويل لغة PHP إلى بايت كود لغة .Net الوسيطة المشتركة؛ وهو سلف برنامج بيتش باي
  • Quercus  – يقوم بتحويل PHP إلى بايت كود جافا

الترخيص

PHP هو برنامج مجاني يتم إصداره بموجب ترخيص PHP ، وهو ما يعادل ترخيص BSD ذي البنود الثلاثة . [ 240 ]

تم إصدار الإصدارات السابقة للإصدار 8.6 بموجب ترخيص أكثر تقييدًا، والذي ينص على ما يلي: [ 241 ]

لا يجوز تسمية المنتجات المشتقة من هذا البرنامج بـ "PHP"، ولا يجوز أن يظهر "PHP" في اسمها، دون الحصول على إذن كتابي مسبق من group@php.net. يمكنك الإشارة إلى أن برنامجك يعمل بالتزامن مع PHP بقول " Foo for PHP" بدلاً من تسميته "PHP Foo" أو "phpfoo".

أدى هذا التقييد على استخدام "PHP" إلى جعل رخصة PHP غير متوافقة مع رخصة جنو العمومية (GPL)، بينما كانت رخصة Zend غير متوافقة بسبب بند إعلاني مشابه لبند رخصة BSD الأصلية . [ 242 ]

التنمية والمجتمع

تتضمن لغة PHP العديد من المكتبات المجانية والمفتوحة المصدر في توزيعاتها المصدرية، أو تستخدمها في إصداراتها الثنائية. تُعد PHP نظامًا مُهيأً للاتصال بالإنترنت، حيث تحتوي على وحدات مدمجة للوصول إلى خوادم بروتوكول نقل الملفات (FTP) والعديد من خوادم قواعد البيانات، بما في ذلك PostgreSQL و MySQL و Microsoft SQL Server و SQLite (وهي قاعدة بيانات مُدمجة)، وخوادم LDAP ، وغيرها. تتوفر العديد من الدوال المألوفة لمبرمجي لغة C، مثل تلك الموجودة في عائلة stdio ، في إصدارات PHP القياسية. [ 243 ]

تتيح لغة PHP للمطورين كتابة إضافات بلغة C لإضافة وظائف جديدة إلى لغة PHP. يمكن تجميع إضافات PHP بشكل ثابت في PHP أو تحميلها ديناميكيًا أثناء التشغيل. وقد كُتبت العديد من الإضافات لدعم واجهة برمجة تطبيقات Windows ، وإدارة العمليات على أنظمة التشغيل الشبيهة بنظام Unix ، والسلاسل متعددة البايت ( Unicode )، و cURL ، والعديد من تنسيقات الضغط الشائعة . تشمل ميزات PHP الأخرى المتاحة من خلال الإضافات التكامل مع بروتوكول IRC، والتوليد الديناميكي للصور ومحتوى Adobe Flash ، وكائنات بيانات PHP (PDO) كطبقة تجريدية تُستخدم للوصول إلى قواعد البيانات، [ 244 ] [ 245 ] [ 246 ] [ 247 ] [ 248 ] [ 249 ] [ 250 ] وحتى توليف الكلام . كما تُنفذ بعض الوظائف الأساسية للغة، مثل تلك المتعلقة بالسلاسل والمصفوفات، كإضافات. [ 251 ] مشروع مكتبة مجتمع إضافات PHP (PECL) هو مستودع لإضافات لغة PHP. [ 252 ] يركز معظم أعضاء المجتمع على تطوير مواقع الويب، وتشغيل PHP من جانب الخادم (مع توفير JavaScript أيضًا من جانب العميل)، وتُستخدم بعض التطبيقات الاستثنائية، مثل تطبيقات الرسوميات المستقلة (مع توقف دعم PHP-GTK لأكثر من عقد من الزمان)، [ 253 ] وحتى التحكم في الطائرات بدون طيار . [ 254 ]

تُتيح بعض المشاريع الأخرى، مثل زيفير ، إمكانية إنشاء إضافات PHP بلغة برمجة عالية المستوى، ثم تجميعها في إضافات PHP أصلية. هذا النهج، بدلاً من كتابة إضافات PHP مباشرةً بلغة C، يُبسّط عملية تطوير الإضافات ويُقلّل الوقت اللازم للبرمجة والاختبار. [ 255 ]

بحلول ديسمبر 2018، كانت مجموعة PHP تتألف من عشرة أشخاص: ثيس سي. أرنتزن ، ستيج باكن ، شين كارافيو ، أندي جوتمانز ، راسموس ليردورف ، سام روبي ، ساشا شومان ، زئيف سوراسكي ، جيم وينستيد ، وأندريه زمييفسكي . [ 256 ]

توفر شركة Zend Technologies شهادة PHP بناءً على امتحان PHP  8 [ 257 ] (وكانت تستند سابقًا إلى PHP 7 و 5.5) للمبرمجين ليصبحوا مطوري PHP معتمدين. 

مؤسسة PHP

في 26 نوفمبر 2021، أعلنت مدونة JetBrains عن إنشاء مؤسسة PHP، التي ستتولى رعاية تصميم وتطوير لغة PHP. [ 259 ]

سنةيلتزمالتقييماتRFCs
2022 [ 260 ]6832838
2023 [ 261 ]78470217
2024 [ 262 ]1976127813

توظف المؤسسة "مطورين أساسيين" للعمل على المستودع الأساسي للغة PHP. وقال رومان برونسكي، عضو مجلس إدارة المؤسسة، إنهم يهدفون إلى دفع "رواتب السوق" للمطورين. [ 263 ]

كانت الاستجابة للمؤسسة إيجابية إلى حد كبير. [ 264 ] [ 265 ]

قدّم صندوق التكنولوجيا السيادي الألماني أكثر من 200 ألف يورو لدعم مؤسسة PHP. [ 266 ]

التثبيت والتكوين

مثال على مخرجات دالة phpinfo() في PHP  7.1

هناك طريقتان أساسيتان لإضافة دعم PHP إلى خادم الويب  : إما كوحدة نمطية أصلية لخادم الويب، أو كملف تنفيذي CGI. يحتوي PHP على واجهة وحدة نمطية مباشرة تُسمى واجهة برمجة تطبيقات الخادم (SAPI)، وهي مدعومة من قِبل العديد من خوادم الويب، بما في ذلك خادم Apache HTTP ، و Microsoft IIS ، و Caddy (عبر FrankenPHP)، وخادم iPlanet . تدعم بعض خوادم الويب الأخرى، مثل OmniHTTPd، واجهة برمجة تطبيقات خادم الإنترنت (ISAPI)، وهي واجهة وحدة خادم الويب الخاصة بمايكروسوفت . إذا لم يكن PHP يدعم الوحدات النمطية لخادم الويب، فيمكن استخدامه دائمًا كمعالج CGI أو FastCGI ؛ في هذه الحالة، يتم تكوين خادم الويب لاستخدام الملف التنفيذي CGI الخاص بـ PHP لمعالجة جميع الطلبات إلى ملفات PHP. [ 267 ]

يُعدّ PHP-FPM (مدير عمليات FastCGI) تطبيقًا بديلًا لـ FastCGI في PHP، وهو مُضمّن في توزيعة PHP الرسمية منذ الإصدار 5.3.3. [ 268 ] بالمقارنة مع تطبيق FastCGI الأقدم، يحتوي على بعض الميزات الإضافية، المفيدة بشكل خاص لخوادم الويب ذات الأحمال العالية. [ 269 ]

عند استخدام PHP لكتابة البرامج النصية عبر سطر الأوامر، يلزم وجود ملف تنفيذي لواجهة سطر أوامر PHP (CLI). يدعم PHP واجهة برمجة تطبيقات خادم CLI (SAPI) منذ الإصدار  4.3.0. [ 270 ] يركز عمل هذه الواجهة بشكل أساسي على تطوير تطبيقات shell باستخدام PHP. توجد اختلافات عديدة بين واجهة برمجة تطبيقات خادم CLI وواجهات برمجة تطبيقات الخادم الأخرى، على الرغم من تشابهها في العديد من السلوكيات. [ 271 ]

يحتوي PHP على واجهة وحدة نمطية مباشرة تُسمى SAPI لخوادم الويب المختلفة؛ [ 272 ] في حالة PHP  5 وApache  2.0 على نظام Windows، يتم توفيرها على شكل ملف DLL يُسمى php5apache2.dll ، [ 273 ] وهي وحدة نمطية، من بين وظائف أخرى، توفر واجهة بين PHP وخادم الويب، مُنفذة بشكل يفهمه الخادم. هذا الشكل هو ما يُعرف باسم SAPI.

توجد أنواع مختلفة من واجهات برمجة تطبيقات المواقع (SAPIs) لمختلف ملحقات خادم الويب. على سبيل المثال، بالإضافة إلى ما ذُكر أعلاه، تشمل واجهات برمجة تطبيقات المواقع الأخرى للغة PHP واجهة البوابة العامة (CGA) وواجهة سطر الأوامر. [ 272 ] [ 274 ]

يمكن استخدام لغة PHP أيضًا لكتابة تطبيقات واجهة المستخدم الرسومية (GUI) لسطح المكتب، وذلك باستخدام "PHP Desktop" على GitHub .أو امتداد PHP-GTK المتوقف . لا يتضمن توزيع PHP الرسمي PHP-GTK، [ 267 ] وبصفته امتدادًا، لا يمكن استخدامه إلا مع إصدارات PHP 5.1.0 والإصدارات الأحدث. الطريقة الأكثر شيوعًا لتثبيت PHP-GTK هي تجميعه من الكود المصدري. [ 275 ]

عند تثبيت لغة PHP واستخدامها في بيئات الحوسبة السحابية ، يتم توفير حزم تطوير البرمجيات (SDKs) لاستخدام الميزات الخاصة بالحوسبة السحابية. [ 276 ] على سبيل المثال:

يدعم النظام العديد من خيارات التكوين، التي تؤثر على كلٍ من ميزات PHP الأساسية والإضافات. [ 279 ] [ 280 ] يتم البحث عن ملف التكوين php.iniفي مواقع مختلفة، وذلك بحسب طريقة استخدام PHP. [ 281 ] يُقسّم ملف التكوين إلى أقسام متعددة، [ 282 ] كما يمكن ضبط بعض خيارات التكوين ضمن إعدادات خادم الويب. [ 283 ]

يستخدم

نظرة عامة شاملة على حزمة برامج LAMP، معروضة هنا مع Squid

لغة PHP هي لغة برمجة نصية متعددة الأغراض، تُناسب بشكل خاص تطوير تطبيقات الويب من جانب الخادم ، حيث تعمل عادةً على خادم الويب . يُنفّذ وقت تشغيل PHP أي كود PHP في ملف مطلوب ، وذلك عادةً لإنشاء محتوى صفحات ويب ديناميكي أو صور ديناميكية تُستخدم على مواقع الويب أو غيرها. [ 284 ] كما يُمكن استخدامها لكتابة البرامج النصية من سطر الأوامر وتطبيقات واجهة المستخدم الرسومية (GUI) من جانب العميل . يُمكن نشر PHP على معظم خوادم الويب، والعديد من أنظمة التشغيل والمنصات ، كما يُمكن استخدامها مع العديد من أنظمة إدارة قواعد البيانات العلائقية (RDBMS). يدعم معظم مزودي خدمات استضافة المواقع الإلكترونية استخدام PHP لعملائهم. وهي متاحة مجانًا، وتُوفر مجموعة PHP شفرة المصدر الكاملة للمستخدمين لبنائها وتخصيصها وتطويرها لاستخدامهم الخاص. [ 285 ]

صفحة ويب ديناميكية: مثال على البرمجة النصية من جانب الخادم (PHP و MySQL)

صُممت لغة PHP في الأصل لإنشاء صفحات ويب ديناميكية ، لكنها تركز الآن بشكل أساسي على برمجة جانب الخادم [ 286 ] ، وهي تشبه لغات برمجة جانب الخادم الأخرى التي توفر محتوى ديناميكيًا من خادم الويب إلى العميل ، مثل بايثون ، وASP.NET من مايكروسوفت ، و JavaServer Pages من صن مايكروسيستمز [ 287 ] . وقد استقطبت PHP أيضًا تطوير العديد من أطر البرمجيات التي توفر لبنات بناء وهيكل تصميم لتسريع تطوير التطبيقات (RAD). ومن هذه الأطر: PRADO ، وCakePHP ، وSymfony ، و CodeIgniter ، وLaravel ، و Yii Framework ، و Phalcon ، و Laminas ، والتي تقدم ميزات مشابهة لأطر الويب الأخرى .mod_perl

أصبحت بنية LAMP شائعة في صناعة الويب كوسيلة لنشر تطبيقات الويب. [ 288 ] يُستخدم PHP عادةً كحرف P في هذه الحزمة إلى جانب Linux و Apache و MySQL ، مع العلم أن الحرف P قد يشير أيضًا إلى Python أو Perl أو مزيج من هذه اللغات الثلاث. تتوفر حزم مماثلة، WAMP و MAMP ، لأنظمة Windows و macOS ، حيث يرمز الحرف الأول إلى نظام التشغيل المعني. على الرغم من أن PHP وApache مُضمّنتان في التثبيت الأساسي لنظام macOS، إلا أن مستخدمي هذه الحزم يبحثون عن آلية تثبيت أبسط وأسهل في التحديث.

For specific and more advanced usage scenarios, PHP offers a well-defined and documented way for writing custom extensions in C or C++.[289][290][291][292][293][294][295] Besides extending the language itself in form of additional libraries, extensions are providing a way for improving execution speed where it is critical and there is room for improvements by using a true compiled language.[296][297] PHP also offers well-defined ways for embedding itself into other software projects. That way PHP can be easily used as an internal scripting language for another project, also providing tight interfacing with the project's specific internal data structures.[298]

PHP received mixed reviews due to lacking support for multithreading at the core language level,[299] though using threads is made possible by the "pthreads" PECL extension.[300][301]

A command line interface, php-cli, and two ActiveXWindows Script Host scripting engines for PHP have been produced.

Popularity and usage statistics

PHP is used for Web content management systems including MediaWiki,[302]WordPress,[303]Joomla,[304]Drupal,[305]Moodle,[306]eZ Publish, eZ Platform, and SilverStripe.[307]

As of January 2013, PHP was used in more than 240 million websites (39% of those sampled) and was installed on 2.1 million web servers.[308]

As of 20 February 2026(بعد ثلاثة أشهر من  إصدار PHP 8.5)، يتم استخدام PHP كلغة برمجة من جانب الخادم في 72٪ من مواقع الويب التي يمكن تحديد اللغة المستخدمة فيها؛ PHP  8 هو الإصدار الأكثر استخدامًا من اللغة حيث أن 56.6٪ من مواقع الويب التي تستخدم PHP تستخدم هذا الإصدار، بينما  يستخدم 34.3٪ PHP 7، و9٪ PHP 5، و0.1٪ PHP 4. [ 195 ]

 8 بيزو فلبيني 56.6%
 7 بيزو فلبيني 34.3%
 5 بيزو فلبيني 9%
 4 بيزو فلبيني 0.1%

نسبة استخدام إصدارات PHP في 20 فبراير 2026: بعد ثلاثة أشهر من إصدار PHP 8.5 [ 195 ] [ 309 ] [ 310 ] [ 311 ] [ 312 ]
  1. PHP 8.5: 0.50% من PHP 8 (0.28%)
  2. PHP 8.4: 8.20% من PHP 8 (4.64%)
  3. PHP 8.3: 24.0% من PHP 8 (13.6%)
  4. PHP 8.2: 36.4% من PHP 8 (20.6%)
  5. PHP 8.1: 21.4% من PHP 8 (12.1%)
  6. PHP 8.0: 9.00% من PHP 8 (5.09%)
  7. PHP 7.4: 73.8% من PHP 7 (25.3%)
  8. PHP 7.3: 10.7% من PHP 7 (3.67%)
  9. PHP 7.2: 8.40% من PHP 7 (2.88%)
  10. PHP 7.1: 3.50% من PHP 7 (1.20%)
  11. PHP 7.0: 3.70% من PHP 7 (1.27%)
  12. PHP 5.6: 55.0% من PHP 5 (4.95%)
  13. PHP 5.5: 8.00% من PHP 5 (0.72%)
  14. PHP 5.4: 15.0% من PHP 5 (1.35%)
  15. PHP 5.3: 14.9% من PHP 5 (1.34%)
  16. PHP 5.2: 6.60% من PHP 5 (0.59%)
  17. PHP 5.1: 0.40% من PHP 5 (0.04%)
  18. PHP 5.0: أقل من 0.1% من PHP 5 (0.00%)
  19. PHP 4.4: 73.8% من PHP 4 (0.07%)
  20. PHP 4.3: 22.2% من PHP 4 (0.02%)
  21. PHP 4.2: 2.60% من PHP 4 (0.00%)
  22. PHP 4.1: 0.70% من PHP 4 (0.00%)
  23. PHP 4.0: 0.70% من PHP 4 (0.00%)

حماية

في عام 2019، ارتبطت 11% من جميع الثغرات الأمنية المُدرجة في قاعدة بيانات الثغرات الأمنية الوطنية بلغة PHP؛ [ 313 ] تاريخيًا، ارتبطت حوالي 30% من جميع الثغرات الأمنية المُدرجة في هذه القاعدة منذ عام 1996 بلغة PHP. لا تُعدّ الثغرات الأمنية التقنية في اللغة نفسها أو في مكتباتها الأساسية شائعة (22 ثغرة في عام 2009، أي حوالي 1% من الإجمالي، على الرغم من أن PHP تُستخدم في حوالي 20% من البرامج المُدرجة). [ 314 ] إدراكًا لخطأ المبرمجين، تتضمن بعض اللغات فحصًا للتلوث للكشف التلقائي عن نقص التحقق من صحة المدخلات ، والذي يُسبب العديد من المشاكل. وقد اقتُرحت هذه الميزة للغة PHP في الماضي، ولكن تم رفضها أو التخلي عن الاقتراح. [ 315 ] [ 316 ] [ 317 ]

تهدف مشاريع الطرف الثالث مثل Suhosin [ 318 ] و Snuffleupagus [ 319 ] إلى إزالة أو تغيير الأجزاء الخطيرة من اللغة.

تاريخيًا، احتوت الإصدارات القديمة من PHP على بعض معلمات التكوين والقيم الافتراضية لإعدادات وقت التشغيل، مما جعل بعض تطبيقات PHP عرضة لمشاكل أمنية. ومن بين هذه المعلمات، magic_quotes_gpcكانت توجيهات التكوين register_globals[ 320 ] الأكثر شهرة؛ حيث جعلت الأخيرة أي معلمات URL متغيرات PHP، مما فتح المجال لثغرات أمنية خطيرة من خلال السماح للمهاجم بتعيين قيمة أي متغير عام غير مهيأ والتدخل في تنفيذ سكربت PHP. تم إيقاف دعم إعدادات " علامات الاقتباس السحرية  " و"تسجيل المتغيرات العامة" منذ PHP 5.3.0، وتمت إزالتها من PHP  5.4.0. [ 321 ]

مثال آخر على ثغرة إعدادات وقت التشغيل المحتملة هو عدم تعطيل تنفيذ PHP (على سبيل المثال، باستخدام engineتوجيه التكوين) [ 322 ] للمجلد الذي تُخزَّن فيه الملفات المرفوعة؛ إذ قد يؤدي تفعيله إلى تنفيذ شيفرة خبيثة مُضمَّنة داخل الملفات المرفوعة. [ 323 ] [ 324 ] [ 325 ] وأفضل الممارسات هي إما وضع مجلد الصور خارج جذر المستند المتاح لخادم الويب وتقديمه عبر برنامج نصي وسيط، أو تعطيل تنفيذ PHP للمجلد الذي يُخزَّن فيه الملفات المرفوعة.

كذلك، فإن تفعيل التحميل الديناميكي لإضافات PHP (عبر enable_dlتوجيهات التكوين) [ 326 ] في بيئة استضافة مواقع مشتركة قد يؤدي إلى مشاكل أمنية. [ 327 ] [ 328 ]

قد تؤدي عمليات تحويل الأنواع الضمنية التي ينتج عنها معاملة قيم مختلفة على أنها متساوية، أحيانًا خلافًا لنية المبرمج، إلى مشكلات أمنية. على سبيل المثال، '0e1234' == '0'تكون نتيجة المقارنة true، لأن السلاسل النصية القابلة للتحليل كأرقام يتم تحويلها إلى أرقام؛ في هذه الحالة، تُعامل القيمة الأولى التي تتم مقارنتها على أنها تدوين علمي بقيمة (0 × 10 1234 )، وهو ما يساوي صفرًا. أدت أخطاء كهذه إلى ثغرات أمنية في مصادقة منتديات Simple Machines [ 329 ] و Typo3 [ 330 ] و phpBB [ 331 ] عند مقارنة تجزئات كلمات المرور باستخدام MD5 . الطريقة المُوصى بها هي استخدام (لضمان الأمان من هجمات التوقيت )، أو عامل الهوية ( )، حيث ينتج عنها .hash_equals()strcmp==='0e1234' === '0'false

في تحليل أجرته Zone-H عام 2013 لأكثر من 170 ألف عملية تشويه لمواقع الويب ، تبين أن التقنية الأكثر استخداماً (53%) هي استغلال ثغرة تضمين الملفات ، والتي ترتبط في الغالب بالاستخدام غير الآمن لبنى لغة PHP . [ 332 ] [ 333 ]includerequireallow_url_fopen

الأمن التشفيري

تتضمن لغة PHP الدالتين rand()[ 334 ] و mt_rand()[ 335 ] اللتين تستخدمان مولد أرقام شبه عشوائية ، وهما غير آمنتين تشفيرياً. ابتداءً من الإصدار 8.1، random_int()تم تضمين الدالة التي تستخدم مصدراً آمناً تشفيرياً للعشوائية يوفره النظام. [ 336 ]

هناك نوعان من الهجمات التي يمكن تنفيذها على مصادر عشوائية PHP: "هجوم البذرة" و"هجوم استعادة الحالة". اعتبارًا من عام 2012، يمكن لوحدة معالجة رسومية ( GPU) بقيمة 250 دولارًا إجراء ما يصل إلى 230 عملية حسابية لـ MD5 في الثانية، بينما يمكن لوحدة معالجة رسومية بقيمة 750 دولارًا إجراء أربعة أضعاف هذا العدد من العمليات الحسابية في الوقت نفسه. [ 337 ] وبالاقتران مع " هجوم عيد الميلاد "، يمكن أن يؤدي ذلك إلى ثغرات أمنية خطيرة.

الدعم طويل الأمد

يُقدّم فريق تطوير PHP إصلاحات رسمية للأخطاء لمدة عامين بعد إصدار كل نسخة فرعية، تليها عامان آخران تُصدر خلالهما إصلاحات أمنية فقط. [ 193 ] بعد ذلك، تُعتبر النسخة متوقفة عن العمل ولا تُقدّم لها أي دعم رسمي.

يتوفر دعم طويل الأجل ممتد يتجاوز ذلك من مقدمي الخدمات التجارية، مثل Zend وغيرهم [ 338 ] [ 339 ]

انظر أيضاً

مراجع

  1. 1 2 ليردورف، راسموس (8 يونيو 1995). "إعلان: أدوات الصفحة الرئيسية الشخصية (أدوات PHP)" . تم الاسترجاع في 7 يونيو 2011 .
  2. ١ ٢ ليردورف، راسموس (٢٦ أبريل ٢٠٠٧). "PHP على الهرمونات - تاريخ PHP، عرض تقديمي من راسموس ليردورف في مؤتمر MySQL في سانتا كلارا، كاليفورنيا" . شبكة المحادثات. مؤرشف من الأصل في ٢٩ يوليو ٢٠١٣. 
  3. "الإصدار 8.5.8" . 3 يوليو 2026. تم الاطلاع عليه في 4 يوليو 2026 .
  4. "PHP: وسائط الدوال - الدليل" .
  5. 1 2 3 إيبرلي، بنيامين؛ شرودر، مارتن (2020-03-09). "PHP RFC: Attributes v2" . wiki.php.net . تم الاسترجاع في 2026-05-11 .
  6. 1 2 3 غارفيلد، لاري؛ توفيلو، إيليا (11 نوفمبر 2020). "PHP RFC: مطابقة الأنماط" . wiki.php.net . تم الاسترجاع في 11 مايو 2026 .
  7. "PHP: مقدمة - دليل المستخدم" .
  8. 1 2 3 غارفيلد، لاري؛ توفيلو، إيليا (2020-12-04). "PHP RFC: Enumerations" . wiki.php.net . تم الاسترجاع في 2026-05-11 .
  9. ستوغوف، ديمتري [@dstogov] (4 ديسمبر 2015). "ليس سراً أن بعض أفكار تحسين #PHP7 جاءت من HHVM وLuaJIT وV8. شكراً @HipHopVM @SaraMG. #php7thankyou" ( تغريدة ) عبر تويتر .
  10. توفيلو، إيليا (22-05-2020). "PHP RFC: Match expression v2" . wiki.php.net . تم الاطلاع عليه بتاريخ 29-11-2020 .
  11. "PHP: معالج النصوص التشعبية" . تم الاطلاع عليه بتاريخ 12 فبراير 2020 .
  12. 1 2 كريل، بول (18 نوفمبر 2013). "صدقوا الضجة: مؤسس PHP يدعم تقنية HipHop من فيسبوك" . إنفوورلد . تم الاطلاع عليه في 13 أكتوبر 2022 .
  13. "إعلان: أدوات الصفحة الرئيسية الشخصية (أدوات PHP)" . تم الاطلاع عليه بتاريخ 3 نوفمبر 2022 .
  14. 1 2 3 4 5 6 7 8 9 "تاريخ لغة PHP والمشاريع ذات الصلة" . مجموعة PHP . تم الاطلاع عليه بتاريخ 25 فبراير 2008 .
  15. 1 2 3 جون داكيت؛ إيمي ستون؛ كريس أولمان (2022). PHP وMySQL: تطوير مواقع الويب من جانب الخادم . هوبوكين، نيو جيرسي : جون وايلي وأولاده، المحدودة. ISBN 978-1-119-14921-7LCCN 2021951353. مؤرشف من الأصل بتاريخ 30 أبريل 2025. تم الاطلاع عليه بتاريخ 28 أبريل 2026 . 
  16. ليردورف، راسموس (20 يوليو 2012). "أتساءل لماذا يصرّ الناس على كتابة أن لغة PHP كُتبت بلغة بيرل. لم تُكتب بها قط. #php" . تويتر . تم الاطلاع عليه بتاريخ 4 سبتمبر 2014 .
  17. ليردورف، راسموس (26 أبريل 2007). "PHP حول الهرمونات" . شبكة المحادثات. مؤرشف من الأصل (mp3) بتاريخ 6 يناير 2019. تم الاطلاع عليه بتاريخ 22 يونيو 2009 .
  18. ليردورف، راسموس (2007). "الشريحة 3" . شرائح عرض تقديمي بعنوان "PHP حول الهرمونات" . مجموعة PHP . تم الاطلاع عليه بتاريخ 22-06-2009 .
  19. ليردورف، راسموس (8 يونيو 1995). "إعلان: أدوات الصفحة الرئيسية الشخصية (أدوات PHP)" . مجموعة الأخبار : comp.infosystems.www.authoring.cgi . تاريخ الاسترجاع: 17 سبتمبر 2006 . 
  20. "تاريخ لغة PHP" . php.net .
  21. "راسموس ليردورف، كبير التقنيين في ياهو: PHP، خلف الميكروفون" . 19-11-2003. مؤرشف من الأصل في 28-07-2013.
  22. الشتوي، أ.ب.؛ رحمت، ر.أ.أ.و.؛ برهان، م.ن.؛ إسماعيل، س.؛ علي، أ.؛ إرتيما، ح.إ.م.؛ الفخرية، أ.ي. (2018). "نظام خبير قائم على الويب لتحسين حركة المرور على الطرق في الدول النامية" . تم الاطلاع عليه بتاريخ 13 فبراير 2024 .
  23. "مشاكل مع PHP" . تم الاطلاع عليه بتاريخ 20 ديسمبر 2010 .
  24. "php.internals: رد: اتساق أسماء الدوال" . news.php.net . 2013-12-28 . تم الاطلاع عليه بتاريخ 2014-02-09 .
  25. راسموس ليردورف (16 ديسمبر 2013). "رد: تسمية الدوال المرنة" . مجموعة الأخبار : php.internals . تم الاطلاع عليه في 26 ديسمبر 2013 . 
  26. "PHP تصويت على معنى الاختصار" . PHP.net . مؤرشف من الأصل في 15 أغسطس 2000. 
  27. "محرك Zend الإصدار 2.0: نظرة عامة على الميزات والتصميم" . شركة Zend Technologies المحدودة. مؤرشف من الأصل بتاريخ 19 يوليو 2006. تم الاطلاع عليه بتاريخ 17 سبتمبر 2006 .
  28. "أرشيف أخبار php.net لعام 2007" . مجموعة PHP. 13 يوليو 2007. تاريخ الاسترجاع: 22 فبراير 2008 .
  29. كيرنر، شون مايكل (1 فبراير 2008). "انتهى عصر PHP 4 - عاشت PHP 5" . أخبار الإنترنت. مؤرشف من الأصل في 6 أغسطس 2018. تم الاطلاع عليه في 16 ديسمبر 2018 .  
  30. تراختنبرغ، آدم (15 يوليو 2004). "لماذا PHP 5 رائع!" . أورايلي. مؤرشف من الأصل في 31 مارس 2016. تم الاطلاع عليه في 22 فبراير 2008 . 
  31. "GoPHP5" . مؤرشف من الأصل بتاريخ 2011-07-17.
  32. "مشاريع PHP تتحد لإطلاق Go PHP 5" (ملف PDF) . بيان صحفي من GoPHP5 . مؤرشف من الأصل (ملف PDF) بتاريخ 4 أغسطس 2019. تم الاطلاع عليه بتاريخ 23 فبراير 2008 . 
  33. "GoPHP5" . GoPHP5. مؤرشف من الأصل بتاريخ 27-04-2011 . تم الاطلاع عليه بتاريخ 22-02-2008 .
  34. "الأنواع: السلاسل النصية (دليل PHP)" . PHP.net . تم الاطلاع عليه بتاريخ 22-09-2013 .
  35. "تفاصيل نوع السلسلة النصية (دليل PHP)" . PHP.net . تم الاطلاع عليه بتاريخ 22-09-2021 .
  36. أندريه زمييفسكي (10 أغسطس 2005). "وثيقة تصميم دعم يونيكود في PHP" (قائمة بريدية) . تم الاطلاع عليها بتاريخ 9 فبراير 2014 .
  37. "PHP 5.5 أو 6.0" . تم الاطلاع عليه بتاريخ 2014-02-09 . 
  38. أندريه زمييفسكي (22 أبريل 2011). "الجيد والسيئ والقبيح: ماذا حدث لليونيكود وPHP 6" . تم الاطلاع عليه بتاريخ 9 فبراير 2014 . 
  39. راسموس ليردورف (11 مارس 2010). "PHP 6" (قائمة بريدية) . تم الاطلاع عليه بتاريخ 7 فبراير 2014 . 
  40. "الربط الثابت المتأخر في PHP" . ديجيتال ساندويتش. 23-02-2006 . تم الاطلاع عليه بتاريخ 25-03-2008 .
  41. "الكلمة المفتاحية الثابتة" . مجموعة PHP . تم الاطلاع عليه بتاريخ 25-03-2008 .
  42. 1 2 3 4 "PHP: عملية الإصدار" . 2011-06-20 . تم الاسترجاع في 2013-10-06 .
  43. "PHP لنظام التشغيل Windows: إصدارات الملفات الثنائية والمصادر (5.3)" . php.net . تم الاطلاع عليه بتاريخ 29-10-2013 .
  44. "PHP لنظام التشغيل Windows: إصدارات الملفات الثنائية والمصادر (5.4)" . php.net . تم الاطلاع عليه بتاريخ 29-10-2013 .
  45. "PHP لنظام التشغيل Windows: إصدارات الملفات الثنائية والمصادر (5.5)" . php.net . تم الاطلاع عليه بتاريخ 29-10-2013 .
  46. "PHP: الإصدارات المدعومة" .
  47. "الجدل الذي لا ينتهي حول PHP 6 مقابل PHP 7" . مؤرشف من الأصل بتاريخ 19-11-2015 . تم الاطلاع عليه بتاريخ 19-11-2015 .  
  48. "RFC: اسم الإصدار التالي من PHP" . php.net . 2014-07-07 . تم الاطلاع عليه بتاريخ 2014-07-15 .
  49. "ردًا على: [ PHP-DEV ] [ VOTE ] [ RFC ] اسم الإصدار التالي من PHP (مرة أخرى)" . 30-07-2014 . تم الاطلاع عليه بتاريخ 30-07-2014 .
  50. "phpng: محرك PHP مُعاد تصميمه مع تحسين كبير في الأداء" . news.php.net .
  51. "PHP: rfc:phpng" . php.net . تم الاطلاع عليه بتاريخ 16 ديسمبر 2014 .
  52. 1 2 "PHP: phpng" . php.net . تم الاسترجاع في 15-07-2014 .
  53. "دمج فرع 'ZendEngine3'" . github.com . 2014-12-05 . تم الاسترجاع في 2014-12-05 .
  54. 1 2 "PHP RFC: Uniform Variable Syntax" . php.net . 2014-05-31 . تم الاطلاع عليه بتاريخ 2014-07-30 .
  55. "PHP RFC: إصلاح سلوك "foreach"" . php.net . تم الاطلاع عليه بتاريخ 21-05-2015 .
  56. 1 2 "PHP RFC: دلالات الأعداد الصحيحة" . php.net . تم الاطلاع عليه بتاريخ 21-05-2015 . إن جعل NaN وInfinity دائمًا تساوي صفرًا عند تحويلهما إلى عدد صحيح يعني مزيدًا من الاتساق عبر المنصات، وهو أيضًا أقل إثارة للدهشة مما ينتجه حاليًا.
  57. "PHP RFC: فشل ZPP عند تجاوز السعة" . php.net . تم الاطلاع عليه بتاريخ 21-05-2015 .
  58. "PHP RFC: إزالة واجهات برمجة التطبيقات والامتدادات المعطلة أو التي لم يتم نقلها إلى PHP7 بعد" . php.net . تم الاطلاع عليه بتاريخ 21-05-2015 .
  59. "PHP RFC: إزالة علامات PHP البديلة" . php.net . تم الاطلاع عليه بتاريخ 21-05-2015 .
  60. 1 2 3 "RFC: أنواع الإرجاع" . php.net . 2015-01-27 . تم الاسترجاع في 2015-01-28 .
  61. 1 2 "PHP: rfc:typed_properties_v2" . wiki.php.net . تم الاطلاع عليه بتاريخ 2019-04-04 .
  62. 1 2 3 4 5 6 "RFC: Scalar Type Declarations" . php.net . 2015-03-16 . تم الاطلاع عليه بتاريخ 2015-03-17 .
  63. 1 2 "PHP: rfc:iterable" . php.net . 2016-06-10 . تم الاسترجاع في 2023-06-30 .
  64. 1 2 "PHP: rfc:nullable_types" . php.net . 2014-04-10 . تم الاسترجاع في 2023-06-30 .
  65. 1 2 "PHP: rfc:void_return_type" . php.net . 2015-11-09 . تم الاسترجاع في 2015-11-14 .
  66. 1 2 "PHP: rfc:object-typehint" . wiki.php.net .
  67. 1 2 "PHP: rfc:isset_ternary" . php.net . تم الاطلاع عليه بتاريخ 16 ديسمبر 2014 .
  68. 1 2 "معامل المقارنة المدمجة (المركبة الفضائية)" . php.net . تم الاسترجاع في 21-05-2015 .
  69. 1 2 "PHP: rfc:short_list_syntax" . php.net . 2016-04-07 . تم الاسترجاع في 2023-06-30 .
  70. 1 2 "PHP: rfc:multiple-catch" . php.net . 2016-03-06 . تم الاطلاع عليه بتاريخ 2023-06-30 .
  71. 1 2 "PHP: rfc:flexible_heredoc_nowdoc_syntaxes" . wiki.php.net .
  72. 1 2 "PHP: rfc:null_coalesce_equal_operator" . wiki.php.net . تم الاطلاع عليه بتاريخ 2019-04-04 .
  73. 1 2 3 برنت. "ما الجديد في PHP 8" . ستيتشر . تم الاطلاع عليه بتاريخ 22 سبتمبر 2020 .
  74. "إصدار PHP 8" . PHP . تم الاطلاع عليه بتاريخ 27 نوفمبر 2020 .
  75. برنت. "PHP 8: أداء الترجمة الفورية في تطبيقات الويب الواقعية" . Stitcher.io . تم ​​الاطلاع عليه بتاريخ 4 أكتوبر 2020 .
  76. ريثامز، ديريك. "PHP 8: نظرة سريعة على JIT" .
  77. ^ بوبوف ، نيكيتا (13 يوليو 2020). ""ما الجديد في PHP 8.0؟" بقلم نيكيتا بوبوف . موقع PHP fwdays. مؤرشف من الأصل بتاريخ 11 ديسمبر 2021. تم الاطلاع عليه بتاريخ 4 أكتوبر 2020 .
  78. دانييلي، كارلو (25 مايو 2020). "ما الجديد في PHP 8 (الميزات والتحسينات ومترجم JIT)" . كينستا . تم الاطلاع عليه بتاريخ 24 ديسمبر 2020 .
  79. كاروناراتني، أيش. "PHP 8.2: دعم إخفاء قيم المعاملات الحساسة" . PHP.Watch . تم الاطلاع عليه بتاريخ 12-10-2025 .
  80. 1 2 "PHP: rfc:marking_overriden_methods" . wiki.php.net . تم الاطلاع عليه بتاريخ 17-12-2023 .
  81. "PHP: rfc:deprecated_attribute" . wiki.php.net . تم الاطلاع عليه بتاريخ 12-10-2025 .
  82. "PHP: rfc:marking_return_value_as_important" . wiki.php.net . تم الاطلاع عليه بتاريخ 12-10-2025 .
  83. "PHP: rfc:delayedtargetvalidation_attribute" . wiki.php.net . تم الاطلاع عليه بتاريخ 14-11-2025 .
  84. شيرزر، دانيال (2025-08-20). "مدونة: شرح السمة # [ \DelayedTargetValidation ] " . scherzer.dev . تم الاطلاع عليه بتاريخ 2025-11-14 .
  85. 1 2 "PHP RFC: Union Types 2.0" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  86. 1 2 "PHP: rfc:pure-intersection-types" . wiki.php.net . تم الاطلاع عليه بتاريخ 26-11-2021 .
  87. 1 2 "PHP: rfc:dnf_types" . wiki.php.net . تم الاطلاع عليه بتاريخ 2023-02-07 .
  88. 1 2 "PHP: rfc:noreturn_type" . wiki.php.net . تم الاطلاع عليه بتاريخ 26-11-2021 .
  89. 1 2 "PHP: rfc:null-false-standalone-types" . wiki.php.net . تم الاطلاع عليه بتاريخ 16-06-2022 .
  90. 1 2 "PHP: rfc:true-type" . wiki.php.net . تم الاطلاع عليه بتاريخ 16-06-2022 .
  91. 1 2 "PHP RFC: مقارنات أكثر منطقية بين السلاسل والأرقام" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  92. 1 2 "PHP RFC: سلاسل رقمية أكثر منطقية" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  93. 1 2 "PHP: rfc:lsp_errors" . wiki.php.net . تم الاطلاع عليه بتاريخ 26-05-2019 .
  94. كاروناراتني، أيش. "PHP 8.1: تمرير قيمة 'null' إلى معلمات الدوال الداخلية غير القابلة للتصفير أصبح مُهملًا" . PHP.Watch . تم الاطلاع عليه بتاريخ 12-10-2025 .
  95. كاروناراتني، أيش. "PHP 8.2: تم إيقاف استخدام الخصائص الديناميكية" . PHP.Watch . تم الاطلاع عليه بتاريخ 12-10-2025 .
  96. 1 2 3 4 5 6 7 8 9 10 11 12 "الفروع غير المدعومة" . php.net . تم الاسترجاع في 31 يوليو 2019 .
  97. "إصدار PHP 4.0.0" . تم الاطلاع عليه بتاريخ 25 أكتوبر 2020 .
  98. 1 2 3 4 "PHP: سجل تغييرات PHP 4" . مجموعة PHP. 2008-01-03 . تم الاطلاع عليه بتاريخ 2008-02-22 . 
  99. "إعلان إصدار PHP 4.1.0" . تم الاطلاع عليه بتاريخ 25 أكتوبر 2020 .
  100. "إعلان إصدار PHP 4.2.0" . تم الاطلاع عليه بتاريخ 25 أكتوبر 2020 .
  101. "إعلان إصدار PHP 4.3.0" . تم الاطلاع عليه بتاريخ 25 أكتوبر 2020 .
  102. "استخدام PHP من سطر الأوامر" . دليل PHP . مجموعة PHP . تم الاطلاع عليه بتاريخ 11-09-2009 .
  103. "إعلان إصدار PHP 4.4.0" . تم الاطلاع عليه بتاريخ 25 أكتوبر 2020 .
  104. ↑ " إعلان إصدار PHP 4.4.0" . دليل PHP . مجموعة PHP . تم الاطلاع عليه بتاريخ 24-11-2013 . 
  105. "تم إصدار PHP 5.0.0!" . تم الاطلاع عليه بتاريخ 25 أكتوبر 2020 .
  106. 1 2 3 "PHP: سجل تغييرات PHP 5" . مجموعة PHP. 2007-11-08 . تم الاطلاع عليه بتاريخ 2008-02-22 . 
  107. "إعلان إصدار PHP 5.1.0" . تم الاطلاع عليه بتاريخ 25 أكتوبر 2020 .
  108. "دليل PHP: PDO" . مجموعة PHP. 15-11-2011 . تم الاطلاع عليه بتاريخ 15-11-2011 .
  109. "إعلان إصدار PHP 5.2.0" . تم الاطلاع عليه بتاريخ 25 أكتوبر 2020 .
  110. "إعلان إصدار PHP 5.3.0" . تم الاطلاع عليه بتاريخ 25 أكتوبر 2020 .
  111. "إعلان إصدار PHP 5.4.0" . تم الاطلاع عليه بتاريخ 25 أكتوبر 2020 .
  112. "خادم ويب مدمج" . تم الاطلاع عليه بتاريخ 26 مارس 2012 .
  113. "إعلان إصدار PHP 5.5.0" . تم الاطلاع عليه بتاريخ 25 أكتوبر 2020 .
  114. 1 2 3 4 "الإصدارات المدعومة" . php.net . تم الاطلاع عليه بتاريخ 13-12-2017 .
  115. "تغييرات PHP 5.5.0" . php.net . مؤرشف من الأصل بتاريخ 1 مارس 2015. تم الاطلاع عليه بتاريخ 3 مارس 2015 . 
  116. "إعلان إصدار PHP 5.6.0" . تم الاطلاع عليه بتاريخ 25 أكتوبر 2020 .
  117. "الانتقال من PHP 5.5.x إلى PHP 5.6.x" . php.net . تم الاطلاع عليه بتاريخ 24-03-2014 .  
  118. كوربيت، جوناثان (24 مارس 2010). "إعادة ضبط PHP 6" . ظهرت كتبٌ على رفوف المكتبات تدّعي تغطية PHP 6 منذ عام 2008 على الأقل. ولكن، في مارس 2010، لم يكن إصدار PHP 6 قد صدر بعد - بل في الواقع، لم يكن قريبًا حتى من الصدور. تشير الأحداث الأخيرة إلى أن PHP 6 لن يُصدر قبل عام 2011 - إن صدر أصلًا.      
  119. كريل، بول (31 أكتوبر 2014). "PHP 7 يمضي قدمًا بكامل طاقته" . إنفوورلد . كانت الإصدارات الأخيرة من PHP جزءًا من سلسلة إصدارات 5.x، ولكن لن يكون هناك إصدار PHP 6. قال غوتمانز: "سنتجاوز الإصدار 6، لأنه قبل سنوات، كانت لدينا خطط لإصدار 6، لكن تلك الخطط كانت مختلفة تمامًا عما نفعله الآن". الانتقال مباشرةً إلى الإصدار 7 يتجنب الارتباك.     
  120. "أرشيف الأخبار - 2018: إصدار PHP 7.2.9" . php.net . 2018-08-16 . تاريخ الاسترجاع: 2018-08-16 .  
  121. "PHP: rfc:size_t_and_int64_next" . php.net . تم الاطلاع عليه بتاريخ 16 ديسمبر 2014 .
  122. "PHP: rfc:abstract_syntax_tree" . php.net . تم الاطلاع عليه بتاريخ 16 ديسمبر 2014 .
  123. "PHP: rfc:closure_apply" . php.net . تم الاطلاع عليه بتاريخ 16 ديسمبر 2014 .
  124. "PHP: rfc:integer_semantics" . php.net . تم الاطلاع عليه بتاريخ 16 ديسمبر 2014 .
  125. "RFC: صيغة الهروب من نقاط ترميز يونيكود" . 24-11-2014 . تم الاسترجاع في 19-12-2014 .
  126. "PHP RFC: Generator delegate" . php.net . تم الاطلاع عليه بتاريخ 21-05-2015 .
  127. "PHP RFC: Anonymous Classes" . php.net . تم الاطلاع عليه بتاريخ 21-05-2015 .
  128. "PHP RFC: Easy User-land CSPRNG" . php.net . تم الاطلاع عليه بتاريخ 21-05-2015 .
  129. "PHP RFC: استثناءات في المحرك (لـ PHP 7)" . php.net . تم الاطلاع عليه بتاريخ 21-05-2015 . 
  130. "PHP RFC: إعلانات استخدام المجموعة" . php.net . تم الاسترجاع في 21-05-2015 .
  131. "PHP: rfc:class_constant_visibility" . php.net . 2015-10-27 . تم الاطلاع عليه بتاريخ 2015-12-08 .
  132. "PHP: rfc:libsodium" . wiki.php.net .
  133. "PHP: rfc:allow-abstract-function-override" . wiki.php.net .
  134. "PHP: rfc:parameter-no-type-variance" . wiki.php.net .
  135. "PHP: ما يجب عمله:php73" . wiki.php.net .
  136. "PHP: rfc:list_reference_assignment" . wiki.php.net .
  137. "PHP: rfc:pcre2-migration" . wiki.php.net .
  138. "PHP: hrtime Manual" . php.net . 
  139. "تم إصدار PHP 7.4.0!" . php.net . تم الاطلاع عليه بتاريخ 28-11-2019 .
  140. "PHP: rfc:preload" . wiki.php.net . تم الاطلاع عليه بتاريخ 2019-04-04 .
  141. "PHP: rfc:improve-openssl-random-pseudo-bytes" . wiki.php.net . تم الاطلاع عليه بتاريخ 4 أبريل 2019 .
  142. "PHP: rfc:weakrefs" . wiki.php.net . تم الاطلاع عليه بتاريخ 2019-04-05 .
  143. "PHP: rfc:ffi" . wiki.php.net . تم الاطلاع عليه بتاريخ 2019-04-05 .
  144. "PHP: rfc:permanent_hash_ext" . wiki.php.net . تم الاطلاع عليه بتاريخ 2019-04-05 .
  145. "PHP: rfc:password_registry" . wiki.php.net . تم الاطلاع عليه بتاريخ 2019-04-05 .
  146. "PHP: rfc:mb_str_split" . wiki.php.net . تم الاطلاع عليه بتاريخ 2019-04-05 .
  147. "PHP: rfc:reference_reflection" . wiki.php.net . تم الاطلاع عليه بتاريخ 2019-04-05 .
  148. "PHP: rfc:deprecate-and-remove-ext-wddx" . wiki.php.net . تم الاطلاع عليه بتاريخ 2019-04-05 .
  149. "PHP: rfc:custom_object_serialization" . wiki.php.net . تم الاطلاع عليه بتاريخ 2019-04-05 .
  150. "PHP: الإصدارات المدعومة" . php.net . تم الاطلاع عليه بتاريخ 26-11-2023 .
  151. "PHP: rfc:jit" . wiki.php.net . تم الاطلاع عليه بتاريخ 2019-04-05 .
  152. "PHP: rfc:negative_array_index" . wiki.php.net . تم الاطلاع عليه بتاريخ 2019-04-05 .
  153. "PHP RFC: التحقق من صحة أساليب السمات المجردة" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  154. "PHP RFC: فحوصات أكثر صرامة لأنواع المعاملات الحسابية/البتية" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  155. "PHP RFC: إعادة تصنيف تحذيرات المحرك" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  156. "PHP: rfc:consistent_type_errors" . wiki.php.net . تم الاطلاع عليه بتاريخ 2019-04-05 .
  157. "PHP RFC: تحويل عدد عشري إلى سلسلة نصية مستقل عن اللغة" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  158. "PHP RFC: تعديلات على بناء الجملة المتغيرة" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  159. "PHP RFC: Attributes V2" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  160. "PHP RFC: تعديلات على السمات" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  161. "PHP RFC: Shorter Attribute Syntax" . wiki.php.net . تم الاطلاع عليه بتاريخ 2020-06-20 .
  162. "PHP RFC: تغيير صيغة السمات المختصرة" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  163. "PHP RFC: Named Arguments" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  164. "PHP RFC: Match expression v2" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  165. "PHP RFC: Constructor Property Promotion" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  166. "PHP RFC: Mixed Type v2" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  167. "PHP RFC: نوع الإرجاع الثابت" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  168. "PHP RFC: عامل Nullsafe" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  169. "PHP RFC: عمليات الالتقاط غير المُلتقطة" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  170. "PHP RFC: throw expression" . wiki.php.net . تم الاطلاع عليه بتاريخ 14 أغسطس 2020 .
  171. أندريه، تايسون. "PHP RFC: امتداد JSON متاح دائمًا" . PHP . تم الاسترجاع في 25 أكتوبر 2020 .
  172. "PHP: ما يجب عمله:php81" . wiki.php.net . تم الاسترجاع 2022-06-16 .
  173. "PHP RFC: Explicit octal integer literal notation" . wiki.php.net . تم الاطلاع عليه بتاريخ 25-11-2020 .
  174. "PHP RFC: Enumerations" . wiki.php.net . تم الاطلاع عليه بتاريخ 25-03-2021 .
  175. "PHP: rfc:readonly_properties_v2" . wiki.php.net . تم الاطلاع عليه بتاريخ 26-11-2021 .
  176. "PHP: rfc:first_class_callable_syntax" . wiki.php.net . تم الاطلاع عليه بتاريخ 26-11-2021 .
  177. "PHP: rfc:new_in_initializers" . wiki.php.net . تم الاطلاع عليه بتاريخ 26-11-2021 .
  178. "PHP: rfc:final_class_const" . wiki.php.net . تم الاطلاع عليه بتاريخ 26-11-2021 .
  179. "PHP: rfc:fibers" . wiki.php.net . تم الاطلاع عليه بتاريخ 26-11-2021 .
  180. "PHP: todo:php82" . wiki.php.net . تم الاطلاع عليه بتاريخ 16-06-2022 .
  181. "PHP: rfc:readonly_classes" . wiki.php.net . تم الاطلاع عليه بتاريخ 16-06-2022 .
  182. "PHP: rfc:strtolower-ascii" . wiki.php.net . تم الاطلاع عليه بتاريخ 16-06-2022 .
  183. "PHP: rfc:constants_in_traits" . wiki.php.net . تم الاطلاع عليه بتاريخ 2023-02-07 .
  184. "تم إصدار PHP 8.3.0!" . php.net . 23 نوفمبر 2023. تم الاطلاع عليه بتاريخ 24 نوفمبر 2023 .
  185. "PHP: rfc:typed_class_constants" . wiki.php.net . تم الاطلاع عليه بتاريخ 17-12-2023 .
  186. "PHP: rfc:dynamic_class_constant_fetch" . wiki.php.net . تم الاطلاع عليه بتاريخ 17-12-2023 .
  187. "PHP: rfc:readonly_amendments" . wiki.php.net . تم الاطلاع عليه بتاريخ 17-12-2023 .
  188. "PHP: rfc:json_validate" . wiki.php.net . تم الاطلاع عليه بتاريخ 17-12-2023 .
  189. "PHP: rfc:randomizer_additions" . wiki.php.net . تم الاطلاع عليه بتاريخ 17-12-2023 .
  190. "PHP: todo: php84" . php.net . 26 مارس 2024 . تم الاطلاع عليه بتاريخ 26 مارس 2024 .
  191. "PHP: todo: php85" . php.net . 16 أبريل 2024 . تم الاطلاع عليه في 16 أبريل 2025 .
  192. "PHP: rfc:pipe-operator-v3" . wiki.php.net . تم الاطلاع عليه بتاريخ 2025-08-06 .
  193. 1 2 "PHP: RFC:release_cycle_update" .
  194. "PHP: فروع غير مدعومة" .
  195. 1 2 3 "إحصائيات استخدام لغة PHP للمواقع الإلكترونية" . W3Techs - استطلاعات تقنية شبكة الويب العالمية . W3Techs . تاريخ الاسترجاع: 20 فبراير 2026 .
  196. "PHP: ElePHPant" . 4 أكتوبر 2014. تم الاطلاع عليه في 4 أكتوبر 2014 .
  197. "إعادة التوجيه..." . wwphp-fb.github.io .
  198. "ولادة تميمة PHP - مبتكر النملة فينسنت بونتير يكشف القصة الحقيقية!" . 7php.com . 2014-01-06.
  199. "ElePHPant" . PHP.earth . تم الاسترجاع في 13 فبراير 2024 .
  200. "PHP: ElePHPant" . www.php.net .
  201. "دليل ميداني للفيلة" . afieldguidetoelephpants.net .
  202. 1 2 "PHP: rfc:shortags" . php.net . 2008-04-03 . تم الاطلاع عليه بتاريخ 2014-05-08 .
  203. "PHP: بناء الجملة الأساسي" . مجموعة PHP . تم الاسترجاع في 22-02-2008 .
  204. "معيار البرمجة الأساسي" . مجموعة التوافق التشغيلي لأطر عمل PHP . تم الاطلاع عليه بتاريخ 3 يناير 2016 .
  205. "echo Manual" . php.net . تم الاطلاع عليه بتاريخ 17-02-2014 . 
  206. "وصف توجيهات php.ini الأساسية - دليل المستخدم" . php.net . 17-03-2002 . تم الاطلاع عليه بتاريخ 17-02-2014 . 
  207. "صفحتك الأولى المُفعّلة بلغة PHP" . مجموعة PHP . تم الاطلاع عليه بتاريخ 25-02-2008 .
  208. براي، تيم؛ وآخرون . (26 نوفمبر 2008). "تعليمات المعالجة" . لغة الترميز القابلة للتوسيع (XML) 1.0 (الطبعة الخامسة) . اتحاد شبكة الويب العالمية (W3C ). تم الاسترجاع في 18 يونيو 2009 . 
  209. "المتغيرات" . مجموعة PHP . تم الاطلاع عليه بتاريخ 16-03-2008 .
  210. "فصل التعليمات" . مجموعة PHP . تم الاسترجاع في 16-03-2008 .
  211. "PHP: if – Manual" . www.php.net . تم الاطلاع عليه بتاريخ 2026-03-08 .
  212. "PHP: for – Manual" . www.php.net . تم الاطلاع عليه بتاريخ 2026-03-08 .
  213. "PHP: while – Manual" . www.php.net . تم الاطلاع عليه بتاريخ 2026-03-08 .
  214. "الأعداد الصحيحة في PHP، والتشغيل باستخدام المقص، وقابلية النقل" . مدونة أداء MySQL. 27 مارس 2007. تاريخ الاسترجاع : 28 مارس 2007 .
  215. "الأعداد الصحيحة" . دليل PHP . مجموعة PHP . تم الاطلاع عليه بتاريخ 26-05-2025 .
  216. 1 2 3 4 5 "الأنواع" . مجموعة PHP . تم الاسترجاع في 16-03-2008 .
  217. "السلاسل النصية" . مجموعة PHP . تم الاطلاع عليه بتاريخ 21-03-2008 .
  218. "SPL – StandardPHPLibrary" . PHP.net . 16 مارس 2009. تم الاطلاع عليه بتاريخ 16-03-2009 . 
  219. 1 2 "الدوال المعرفة من قبل المستخدم (دليل PHP)" . php.net . 2014-07-04 . تم الاطلاع عليه بتاريخ 2014-07-07 .
  220. 1 2 "الدوال المتغيرة (دليل PHP)" . php.net . 2014-07-04 . تم الاطلاع عليه بتاريخ 2014-07-07 .
  221. "create_function() (دليل PHP)" . php.net . 2022-04-06 . تم الاطلاع عليه بتاريخ 2022-05-04 .
  222. "الدوال المجهولة (دليل PHP)" . php.net . 2014-07-04 . تم الاطلاع عليه بتاريخ 2014-07-07 .
  223. "وظائف السهم (دليل PHP)" . php.net . تم الاطلاع عليه بتاريخ 25-01-2021 .
  224. كريستيان سيلر؛ ديمتري ستوغوف (1 يوليو 2008). "طلب تعليقات: دوال لامدا والإغلاقات" . php.net . تم الاطلاع عليه بتاريخ 7 يوليو 2014 .
  225. 1 2 " مراجع الكائنات في PHP 5" . mjtsai.com . تم الاطلاع عليه بتاريخ 16-03-2008 . 
  226. "التغييرات غير المتوافقة مع الإصدارات السابقة" . php-legacy-docs.zend.com . تم الاطلاع عليه بتاريخ 2025-06-20 .
  227. "الفئات والكائنات (PHP 5)" . مجموعة PHP . تم الاطلاع عليه بتاريخ 16-03-2008 . 
  228. "استنساخ الكائنات" . مجموعة PHP . تم الاطلاع عليه بتاريخ 16-03-2008 .
  229. "الرؤية (دليل PHP)" . theserverpages.com . ١٩ مايو ٢٠٠٥. مؤرشف من الأصل في ٢٤ سبتمبر ٢٠١٠. تم الاطلاع عليه في ٢٦ أغسطس ٢٠١٠ .
  230. "PHP: الرؤية - الدليل" . www.php.net . تم الاطلاع عليه بتاريخ 19-11-2025 .
  231. "كيف تعمل لغات البرمجة؟" . مؤرشف من الأصل بتاريخ 16-07-2011 . تم الاطلاع عليه بتاريخ 04-11-2009 .
  232. ↑ جيلمور، دبليو . جيسون (23 يناير 2006). مقدمة في PHP وMySQL 5: من المبتدئ إلى المحترف . دار نشر Apress. ص 43. ISBN  1-59059-552-1.
  233. جوليان باولي؛ نيكيتا بوبوف؛ أنتوني فيرارا. "كتاب أساسيات لغة PHP" . كتاب أساسيات لغة PHP . مؤرشف من الأصل بتاريخ 21 يناير 2025. تم الاطلاع عليه بتاريخ 21 يناير 2025 .
  234. " [ تصويت ] دمج Zend Optimizer+ في توزيعة PHP" . news.php.net . تم الاطلاع عليه بتاريخ 8 مارس 2013 .
  235. "ذاكرة التخزين المؤقت البديلة لـ PHP" . PHP.net . مؤرشف من الأصل بتاريخ 15-11-2013 . تم الاطلاع عليه بتاريخ 21-09-2013 .
  236. "نحن 98.5% (و16%) من « آلة الهيب هوب الافتراضية»" . hhvm.com . ديسمبر 2013. تم الاطلاع عليه بتاريخ 23 فبراير 2014 . 
  237. "المعايير النهائية لإصدارات PHP 5.6 و7.0 و7.1 و7.2 و7.3 (2019)" . 14 يناير 2019. تاريخ الاطلاع: 19 أبريل 2019 .
  238. كريل، بول (2017-09-20). "انسَ لغة PHP! محرك HHVM الخاص بفيسبوك يتحول إلى Hack بدلاً منها" . إنفوورلد . تم الاسترجاع في 2019-02-06 .
  239. "إعلان على GitHub بإزالة دعم HPHPc" . GitHub . تم الاطلاع عليه بتاريخ 24-05-2013 .
  240. "PHP: معلومات الترخيص" . www.php.net . تم الاطلاع عليه بتاريخ 28-04-2026 .
  241. "رخصة PHP، الإصدار 3.01" . تم الاطلاع عليها بتاريخ 20-05-2010 .
  242. "تراخيص البرمجيات الحرة غير المتوافقة مع رخصة جنو العمومية" . تراخيص متنوعة وتعليقات عليها . مؤسسة البرمجيات الحرة . تم الاطلاع بتاريخ 3 يناير 2011 .
  243. "PHP: قائمة الدوال والأساليب - دليل المستخدم" . مجموعة PHP . تم الاطلاع عليه بتاريخ 14 يناير 2015 . 
  244. "مقدمة - دليل المستخدم" . php.net . 2013-06-07 . تم الاطلاع عليه بتاريخ 2013-06-13 . 
  245. داريل باترسون (5 أغسطس 2004). "تبسيط منطق الأعمال باستخدام كائنات بيانات PHP - دار نشر أورايلي ميديا" . ibm.com . مؤرشف من الأصل في 16 ديسمبر 2014. تم الاطلاع عليه في 16 ديسمبر 2014 . 
  246. "آي بي إم - الولايات المتحدة" . تم الاطلاع عليه بتاريخ 16 ديسمبر 2014 . 
  247. "خمس مشاكل شائعة في قواعد بيانات PHP" . ibm.com . 2006-08-01 . تم الاطلاع عليه بتاريخ 2013-06-13 .
  248. "كتب IBM الحمراء - تطوير تطبيقات PHP لخوادم بيانات IBM" . redbooks.ibm.com . تم الاطلاع عليه بتاريخ 16 ديسمبر 2014 . 
  249. "مجلة php [ architect ] – مجلة مبرمجي PHP" . www.phparch.com .
  250. كريل، بول (19 أكتوبر 2005). "لغة PHP تنتشر في المؤسسات، وتنافس لغة جافا" . إنفوورلد . مؤرشف من الأصل في 13 يوليو 2014.
  251. "مرجع متقاطع: /PHP_5_4/ext/standard/" . php.net . مؤرشف من الأصل بتاريخ 16 مارس 2012. تم الاطلاع عليه بتاريخ 16 ديسمبر 2014 .
  252. "تطوير إضافات PHP مخصصة" . devnewz.com . 9 سبتمبر 2002. مؤرشف من الأصل في 18 فبراير 2008. تم الاطلاع عليه في 25 فبراير 2008 .
  253. "مقدمة: ما الذي يمكن أن يفعله PHP؟" . دليل PHP . مؤرشف من الأصل في 16 فبراير 2009. تم الاطلاع عليه في 5 مارس 2009 .
  254. "مروحية: نسخة من node-ar-drone تُمكّن المستخدم من التحكم في طائرة Parrot AR Drone عبر PHP" . JoliCode. ١١ يناير ٢٠١٩. تاريخ الاطلاع: ٢٣ فبراير ٢٠١٩ .
  255. "لماذا زفير؟" . zephir-lang.com . 2015-10-20 . تم الاطلاع عليه بتاريخ 2015-12-14 .
  256. "حقوق استخدام PHP" . تم الاطلاع عليه بتاريخ 16-12-2018 .
  257. "تعلم لغة PHP من خلال دورات تدريبية وشهادات معتمدة" . www.zend.com . تاريخ الوصول: 16 نوفمبر 2020 .
  258. ووكر، جيمس (13 ديسمبر 2021). "ماذا تعني مؤسسة PHP الجديدة لمستقبل PHP؟" . How-To Geek . تم الاطلاع عليه بتاريخ 26 نوفمبر 2023 .
  259. "الحياة الجديدة للغة PHP - مؤسسة PHP | مدونة PhpStorm" . مدونة JetBrains . 22 نوفمبر 2021. تاريخ الاطلاع: 16 يونيو 2022 .
  260. "مؤسسة PHP: تقرير الأثر والشفافية 2022" . thephp.foundation . تم الاطلاع عليه بتاريخ 27-11-2023 .
  261. برونسكي، رومان (26 فبراير 2024). "مؤسسة PHP: تقرير الأثر والشفافية 2023" . مؤسسة PHP . تاريخ الاسترجاع: 1 أبريل 2024 .
  262. برونسكي، رومان (31 مارس 2025). "مؤسسة PHP: تقرير الأثر والشفافية 2023" . مؤسسة PHP . تاريخ الاسترجاع: 19 أغسطس 2025 .
  263. أندرسون، تيم. "مؤسسة PHP تأسست لتمويل المطورين الأساسيين" . www.theregister.com . تاريخ الاسترجاع: 5 ديسمبر 2023 .
  264. "مؤسسة PHP: حقبة جديدة لـ PHP" . مدونة JetBrains . JetBrains. 26 نوفمبر 2021. تم الاطلاع عليه بتاريخ 6 أكتوبر 2025 .
  265. كلابورن، توماس (26 نوفمبر 2021). "تأسيس مؤسسة PHP لدعم لغة المصادر المفتوحة" . السجل . تم الاسترجاع في 6 أكتوبر 2025 .
  266. "PHP" . صندوق التكنولوجيا السيادي . تم الاسترجاع في 26-05-2024 .
  267. 1 2 "اعتبارات التثبيت العامة" . php.net . تم الاسترجاع في 22-09-2013 .
  268. "أرشيف الأخبار: إصدار PHP 5.3.3!" . php.net . 2010-07-22. 
  269. "مدير عمليات FastCGI (FPM)" . php.net . تم الاطلاع عليه بتاريخ 22-09-2013 .
  270. "استخدام سطر الأوامر: مقدمة" . php.net . مؤرشف من الأصل بتاريخ 21-03-2021 . تم الاطلاع عليه بتاريخ 22-09-2013 .
  271. "استخدام سطر الأوامر: الاختلافات عن واجهات برمجة التطبيقات الأخرى" . php.net . تم الاطلاع عليه بتاريخ 22-09-2013 .
  272. 1 2 "اعتبارات التثبيت العامة" . php.net . تم الاسترجاع في 22-09-2013 .
  273. "PHP: Apache 2.x على نظام التشغيل Microsoft Windows" . php.net . مؤرشف من الأصل بتاريخ 26-09-2013 . تم الاطلاع عليه بتاريخ 22-09-2013 .
  274. "استخدام سطر الأوامر: مقدمة" . php.net . مؤرشف من الأصل بتاريخ 21-03-2021 . تم الاطلاع عليه بتاريخ 22-09-2013 .
  275. "تثبيت PHP-GTK 2" . php.net . مؤرشف من الأصل بتاريخ 12-12-2013 . تم الاطلاع عليه بتاريخ 22-09-2013 .
  276. فينيت شارما. "ما هي الحوسبة السحابية؟ | كيفية دمج PHP مع AWS" . كلاريون تكنولوجيز . تم الاطلاع عليه بتاريخ 2025-12-06 .{{cite web}}: CS1 maint: url-status ( link )
  277. "مجموعة أدوات تطوير البرمجيات AWS للغة PHP" . aws.amazon.com . تم الاطلاع عليه بتاريخ 2014-03-06 .
  278. "مجموعة أدوات تطوير البرامج (SDK) الخاصة بـ Windows Azure لـ PHP - مركز جسور ومختبرات التوافق التشغيلي" . interoperabilitybridges.com . مؤرشف من الأصل بتاريخ 20 مارس 2014. تم الاطلاع عليه بتاريخ 6 مارس 2014 . 
  279. "إعدادات وقت التشغيل: جدول المحتويات" . php.net . تم الاطلاع عليه بتاريخ 22-09-2013 .
  280. "توجيهات php.ini: قائمة بتوجيهات php.ini" . php.net . تم الاطلاع عليه بتاريخ 22-09-2013 .
  281. "إعدادات وقت التشغيل: ملف الإعدادات" . PHP.net . تم الاطلاع عليه بتاريخ 22-09-2013 .
  282. "توجيهات php.ini: قائمة أقسام php.ini" . PHP.نت . تم الاسترجاع 2013/09/22 .
  283. "تكوين وقت التشغيل: مكان ضبط إعدادات التكوين" . PHP.net . تم الاسترجاع في 22-09-2013 .
  284. "معالجة الصور اليدوية باستخدام PHP و GD؛" . php.net . تم الاطلاع عليه بتاريخ 2011-04-09 .
  285. "تضمين لغة PHP في HTML" . دار نشر أورايلي. 3 مايو 2001. مؤرشف من الأصل بتاريخ 19 فبراير 2008. تم الاطلاع عليه بتاريخ 25 فبراير 2008 .
  286. "لغة برمجة PHP من جانب الخادم" . جامعة إنديانا . 4 أبريل 2007. مؤرشف من الأصل في 21 يناير 2016. تم الاطلاع عليه في 25 فبراير 2008 .
  287. "تقنية صفحات جافا سيرفر - مقارنة طرق صفحات جافا سيرفر للمحتوى الديناميكي من جانب الخادم" . صن مايكروسيستمز . تم الاطلاع عليه بتاريخ 25 فبراير 2008 . 
  288. "خمس طرق بسيطة لضبط تطبيق LAMP الخاص بك" . IBM . 2011-01-25.
  289. "PHP في جوهرها: بنية الامتداد" . PHP.net . مؤرشف من الأصل بتاريخ 26-09-2013 . تم الاطلاع عليه بتاريخ 22-09-2013 .
  290. "PHP في جوهرها: امتداد "العداد" - مثال مستمر" . PHP.net . مؤرشف من الأصل بتاريخ 26-09-2013 . تم الاطلاع عليه بتاريخ 22-09-2013 . 
  291. "كتابة الإضافات - الجزء الأول: مقدمة إلى PHP وZend" . Zend Technologies . 1 مارس 2005. مؤرشف من الأصل في 24 سبتمبر 2013. تم الاطلاع عليه في 22 سبتمبر 2013 .
  292. "كتابة الامتدادات - الجزء الثاني: المعاملات والمصفوفات وقيم ZVAL" . شركة Zend Technologies . 6 يونيو 2005. مؤرشف من الأصل بتاريخ 26 سبتمبر 2013. تم الاطلاع عليه بتاريخ 22 سبتمبر 2013 .
  293. "كتابة الامتدادات - الجزء الثاني: المعاملات والمصفوفات وZVALs (تابع)" . Zend Technologies . 2005-06-06. مؤرشف من الأصل في 2013-09-26 . تم الاطلاع عليه في 2013-09-22 .
  294. "الكتابة الإضافية - الجزء الثالث: الموارد" . شركة زيند تكنولوجيز . ١٢ مايو ٢٠٠٦. مؤرشف من الأصل بتاريخ ٢٦ سبتمبر ٢٠١٣. تم الاطلاع عليه بتاريخ ٢٢ سبتمبر ٢٠١٣ .
  295. "تغليف فئات C++ في امتداد PHP" . Zend Technologies . 22-04-2009. مؤرشف من الأصل في 20-09-2013 . تم الاطلاع عليه في 22-09-2013 .
  296. "توسيع PHP باستخدام C++؟" . Stack Overflow . تم الاسترجاع في 22-09-2013 .
  297. "كيف يمكنني استخدام كود C++ للتفاعل مع PHP؟" . موقع Stack Overflow . تم الاطلاع عليه بتاريخ 22-09-2013 .
  298. غوليمون، سارة (2006). توسيع وتضمين لغة PHP . سامز. ISBN 978-0-672-32704-9.
  299. "الطلب رقم 46919: تعدد الخيوط" . PHP.net . تم الاطلاع عليه بتاريخ 22-09-2013 .
  300. "pthreads: مقدمة (دليل PHP)" . PHP.net . تم الاطلاع عليه بتاريخ 22-09-2013 .
  301. "PECL :: Package :: pthreads" . pecl.php.net . تم الاطلاع عليه بتاريخ 2014-02-09 .  
  302. "دليل: متطلبات التثبيت #PHP" . ميدياويكي. 2010-01-25 . تم الاسترجاع 2010-02-26 . PHP هي لغة البرمجة التي يتم بها كتابة ميدياويكي [...]
  303. "حول ووردبريس" . تم الاطلاع عليه بتاريخ 26 فبراير 2010. تم بناء ووردبريس [...] باستخدام لغة PHP
  304. كيمبكنز، أليكس. "جوملا! - نظام إدارة المحتوى لبناء مواقع الويب والتطبيقات" . 
  305. "PHP و Drupal" . Drupal.org. 16 سبتمبر 2007. مؤرشف من الأصل في 8 فبراير 2010. تم الاطلاع عليه في 13 يونيو 2010 .
  306. "حول" . Moodle.org. مؤرشف من الأصل بتاريخ 11 يناير 2010. تم الاطلاع عليه بتاريخ 20 ديسمبر 2009 .
  307. "متطلبات خادم SilverStripe" . مؤرشف من الأصل بتاريخ 28 نوفمبر 2014. تم الاطلاع عليه بتاريخ 13 أكتوبر 2014. يتطلب SilverStripe الإصدار PHP 5.3.2 أو أحدث . 
  308. آيد، آندي (31 يناير 2013). "لغة PHP تنمو وتنمو باستمرار" . تم الاطلاع عليه بتاريخ 1 أبريل 2013 .
  309. "إحصائيات الاستخدام وحصة السوق لإصدار PHP 4 للمواقع الإلكترونية، فبراير 2026" . w3techs.com .
  310. "إحصائيات الاستخدام وحصة السوق لإصدار PHP 5 للمواقع الإلكترونية، فبراير 2026" . w3techs.com .
  311. "إحصائيات الاستخدام وحصة السوق لإصدار PHP 7 للمواقع الإلكترونية، فبراير 2026" . w3techs.com .
  312. "إحصائيات الاستخدام وحصة السوق لإصدار PHP 8 للمواقع الإلكترونية، فبراير 2026" . w3techs.com .
  313. "قاعدة بيانات الثغرات الأمنية الوطنية (NVD) - إحصائيات البحث عن الثغرات الأمنية" . تم الاطلاع عليه بتاريخ 22-11-2019 .
  314. "ثغرات أمنية متعلقة بلغة PHP في قاعدة بيانات الثغرات الأمنية الوطنية" . 2012-07-05. مؤرشف من الأصل بتاريخ 2009-06-28 . تم الاطلاع عليه بتاريخ 2013-04-01 .
  315. "ملاحظات اجتماع المطورين، نوفمبر 2005" .
  316. "قرار وضع التلوث، نوفمبر 2007" . مؤرشف من الأصل في 26-02-2009.
  317. "PHP: rfc:taint" . wiki.php.net .
  318. "مشروع PHP المحسّن" . 15-08-2008. مؤرشف من الأصل في 24-02-2019 . تم الاطلاع عليه في 22-08-2019 .
  319. "وثائق سنوفلوباغوس" .
  320. "الأمان: استخدام المتغيرات العامة في السجلات" . دليل PHP . PHP.net. مؤرشف من الأصل بتاريخ 27-09-2013 . تم الاطلاع عليه بتاريخ 22-09-2013 .
  321. "اقتباسات سحرية" . دليل PHP . PHP.net. مؤرشف من الأصل بتاريخ 2014-02-08 . تم الاطلاع عليه بتاريخ 2014-01-17 .
  322. "توجيه تكوين "المحرك" . PHP: تكوين وقت التشغيل . PHP.net . تم الاسترجاع في 13 فبراير 2014 .
  323. "ثغرة أمنية في PHP باستخدام صور GIF" . 22-06-2007. مؤرشف من الأصل في 27-09-2013 . تم الاطلاع عليه في 22-09-2013 .
  324. "ثغرة أمنية في PHP باستخدام صور GIF" . مدونة PHP Classes. 20 يونيو 2007. تاريخ الاطلاع: 22 سبتمبر 2013 .
  325. "تمرير كود PHP خبيث عبر دالة getimagesize()" . 2007-06-04. مؤرشف من الأصل في 2013-09-21 . تم الاطلاع عليه في 2013-09-22 .
  326. "توجيه التكوين 'enable_dl' . PHP: تكوين وقت التشغيل . PHP.net . تم الاسترجاع في 13 فبراير 2014 .
  327. "مرجع دالة PHP: dl()" . PHP.net . تم الاطلاع عليه بتاريخ 22-09-2013 .
  328. "مُستضيف موقعي لا يُصلح برنامج التجسس الخاص به" . نقاش حول استضافة المواقع . تم الاطلاع عليه بتاريخ 22-09-2013 .
  329. Raz0r (25 يناير 2013). "إعادة تعيين كلمة مرور المسؤول لمنتدى Simple Machines <= 2.0.3" . Raz0R.name – أمان تطبيقات الويب .{{cite news}}: صيانة CS1: الأسماء الرقمية: قائمة المؤلفين ( رابط )
  330. عاب الأمن. "TYPO3-SA-2010-020، TYPO3-SA-2010-022 موضح" .
  331. "الغموض وعدم اليقين" . ahack.ru (بالروسية). أرشفة من الأصلي في 4 يوليو 2017.
  332. كراوتشيك، باول (2013). "أكثر الهجمات شيوعًا على تطبيقات الويب" . IPSec.pl. مؤرشف من الأصل بتاريخ 15-04-2015 . تم الاطلاع عليه بتاريخ 15-04-2015 .
  333. كراوتشيك، باول (2013). "ما هي عيوب التطبيقات "الأكثر خطورة"؟ حول قائمة OWASP Top 10 الجديدة" . IPSec.pl . تاريخ الاسترجاع: 15 أبريل 2015 .
  334. "PHP: Rand – Manual" .
  335. "PHP: Mt_rand – دليل المستخدم" .
  336. "PHP: Random_int – Manual" .
  337. أرغيروس، جورج؛ كياياس، أنجيلوس (10 أغسطس 2012). "نسيت كلمة مرورك: هجمات العشوائية ضد تطبيقات PHP" . usenix.org . USENIX . تم الاطلاع عليه في 19 أبريل 2024 .
  338. "دعم PHP للإصدارات من 7.2 إلى 8.0 | PHP LTS | Zend by Perforce" . تم الاطلاع عليه بتاريخ 23-05-2024 .
  339. "صفحة الدعم طويل الأمد لـ Pagely PHP" . Pagely . تم الاطلاع عليها بتاريخ 14-09-2024 .

للمزيد من القراءة