ظهرت php أولا في سنة1995 على يدراسموس ليردورف كانت تسمى وقتها بـ PHP/FI وفي الحقيقة لم تكن لغة برمجة وقتها وإنما كانت مجموعة من التطبيقات التي كتبت باستخدام لغةبيرل أطلق راسموس اسم Personal Home Page Tools على هذه التطبيقات، لأنه احتاج فيما بعد إلى تطبيقات أكثر فائدة قام راسموس بكتابة تطبيق أكبر باستخدام لغةسي حيث أصبحت قادرة على الاتصالبقواعد البيانات كما أنها كانت تسمح للمستخدمين بتطوير تطبيقات مواقع ديناميكية بسيطة، اختار راسموس أن تكون الشيفرة المصدرية الخاصة بـ PHP/FI متوفرة للجميع لذا كان يمكن لأي شخص أن يستخدمها ويقوم بتحسينها والمشاركة في حل أخطاءها ومشاكلها.
كانت PHP/FI وقتها تحوي على بعض الوظائف المتوفرة بالإصدارات الحالية من اللغة، كما أنالمتغيرات كانت تشبه متغيراتبيرل، وكانت تركيبها النحوي يشبهبيرل بالرغم من بساطتها ومحدودياتها.
في عام1997 تم إطلاق الإصدار 2.0 من PHP/FI، حيث بلغ عدد مستخدميها آنذاك 50,000 نطاق، وكان هناك مجموعة من الأشخاص الذين يشاركون في التطوير، وتم إطلاق الإصدار الرسمي من 2.0 في شهرنوفمبر من نفس العام بعد العديد من الإصدارات التجريبيةبيتا.
في عام1997 تم إعادة كتابة PHP/FI على يدزيف سوراسكي،أندي جتمانز بعدما وجدوا أن PHP/FI 2.0 ليست قوية بما فيه الكفاية من أجل كتابة تطبيق تجارة إلكترونية والذي كانوا يعملون عليه كمشروع تخرج لجامعتهم، كان هناك تعاون بينهم وبين مؤسس اللغةراسموس ليردورف على أن تكون PHP 3.0 هي النسخة الرسمية بعد PHP/FI.
أحد أهم الميزات التي تميزت بها بي إتش بي 3 عن سابقتها إنها أصبحتقابلة للتوسع وتوفر مع هذا الإصدار العديد من المكتبات والدوال، وأدت قابلية التوسع إلى إقبال العديد من المطورين على تطوير المكتبات الجديدة وإضافتها مع اللغة، ويقال أن هذا هو السبب الأساسي للنجاح الذي حققه هذا الإصدار، ومن الميزات الأخرى التي تمت إضافتها في هذا الإصدار هيالبرمجة كائنية التوجه.
وفي هذا الإصدار تم تغيير اسم اللغة ووضعها تحت اسم جديد وهو بي إتش بي (بدون FI) والذي كان يحمل اختصارا لمعنى جديد مختلف عن الإصدار السابق والمعنى هو "PHP: Hypertext Preprocessor".
تم إطلاق بي إتش بي 3.0 في يونيو1998 بعد 9 أشهر من الاختبارات.
في عام1998، وبعد الانطلاق الرسمي لبي إتش بي 3.0 بقليل بدأزيف سوراسكيوأندي جتمانز بإعادة كتابة أساس لغة بي إتش بي وكان الهدف من ذلك هو تحسين الأداء للبرامج المعقدة والضخمة وتحسين قابلية اللغة للتوسع.
المحرك الجديد الذي ظهر بعد إعادة الكتاب تم تسميتهبمحرك زند واسم «زند» مأخوذ من أوائل حروف أسماء مطوريه، ونجحوا في تحقيق اهدافهم عن طريق هذا المحرك، وتم الإعلان عنه في عام1999.
تعتمد بي إتش بي 4.0 على هذا المحرك وتم الإعلان عن هذا الإصدار من بي إتش بي في مايو2000، بالإضافة إلى تحسين الأداء في هذا الإصدار احتوى كذلك على مجموعة جديدة من الميزات مثل دعمه لعدد أكبر منخوادم الوب، الجلسات، طرق آمنة جديدة لمعالجة دخل المستخدم وغيرها.
غالبا ما تعمل لغة بي إتش بي علىخادم ويب، كما يمكن استخدامهاكواجهة سطر أوامر أو استخدامها لتطوير برامج ذاتواجهة رسومية تعمل على حاسوب المستخدم، يمكن استخدام بي إتش بي تحت معظمخوادم الويب كما أنها تعمل على معظمنظم التشغيل، كما أن فريق تطويرها يزود شيفرتها المصدرية كاملة حيث يمكن للمستخدمين بناءها وتطويرها بما يناسب احتياجاتهم.
تقوم بي إتش بي أساسا بأخذ الملف الذي يحتوي على أوامر البي إتش بي (ملفات.php) كمدخل وتقوم بإخراج بيانات قابلة للعرض.
في الإصدار الرابع من بي إتش بي، تقوم بتحويل الملفات المكتوبة باستخدام البي إتش بي إلىشيفرة البايت لمعالجتها عن طريقمحرك زند، وفي الإصدار الخامس تقدمت لغة بي إتش بي بتقنيات عالية جدا وكان آخر إصدار من النسخة الخامسة هو 5.5.9.
في الحقيقة صممت بي إتش بي من أجل استخدامها من ناحية الخادم وبناء تطبيقاتويب تفاعلية، وقد أصبح بناءلامب مشهورا جدا في صناعة الويب كطريقة برمجيات ويب آمنة، غير مكلفة، ويمكن الاعتماد عليها. بي إتش بي مشار إليها كحرف P في LAMP كلغة برمجة، بجانبلينكس (L) كنظام تشغيل،أباتشي (A) كخادم ويبوماي إس كيو إل (M)كنظام إدارة قواعد البيانات.وقد ظهرت أيضا بناءات أخرىكوامب مستبدلةلينكسبويندوز (W)،ومامب مستبدلةلينكسبماك أو اس (M).
تقوم PHP بتنفيذ ما هو بين الوسمين <?php و?> فقط، وأي شيء خارج هذا هذين الوسمين فيتم طباعته مباشرة ولا يتم معاملته كشيفرة PHP، تمكن هذه الميزة من إدخال شيفرات الـ PHP داخل شيفرات HTML، مثلا:
المتغيرات تكون مسبوقة بعلامة الدولار - $ - ومن غير الضروري تعريف نوع المتغير، بعكس أسماء الدوال والاصناف، المتغيرات حساسة لحالة الحرف، ومن أجل وضع قيمة للمتغير يتم استخدام علامات الاقتباس المزدوجة - " - أو المفردة - ' - أو بدون أي علامة اقتباس بحيث تكون القيمة في هذه الحالة على إحدى الأشكال التالية:
تقوم بي إتش بي بتخزين الأرقام بمدى يعتمد علىالمعالج التي تعمل عليه، هذا المدى نموذجيا يكون32 بت من الأعداد الصحيحة، متغيرات الأعداد الصحيحة يمكن أن تكون قيمتهاعشرية أوثمانية أوست عشرية.الأعداد الحقيقية كذلك تخزن بمدى يعتمد علىالمعالج.
لغة بي إتش بي تحتوي كذلك على نوعبوليان والذي يسمى بـ "booleen"، كما في لغةبيرل الأرقام الأكبر أو الأصغر من صفر يمكن أن تعتبر true أما الصفر يمكن أن تعتبر false.
نوع البيانات null يمثل المتغيرات التي لا تحتوي على القيمة، والقيمة الوحيدة في هذا النوع من البيانات هي NULL.
المصفوفات تدعم الفهارس النصية والرقمية، المصفوفات يمكن أن تحتوي عناصر من أي نوع من البيانات التي تدعمها بي إتش بي.
في PHP 3 تم إضافة أساسياتبرمجة كائنية التوجه، وتم إعادة كتابته في PHP 5 من أجل تحسين الأداء وإضافة المزيد من الميزات، في الإصدارات السابقة من بي إتش بي كانت تعامل الكائناتكأنواع بدائية (بالإنجليزية:Primitive Types). وكانت نقطة ضعف هذا الأسلوب في أن الكائن كان ينسخ كاملا عندما يتم تكليفه كمتغير أو عندما يتم تمريره إلى الدوال، وقد تم حل هذه المشكلة PHP 5.
في PHP 5 تم الإعلان عن الأنواع private وprotected لكل من الدوال والمتغيرات، وتم الإعلان عن الطريقة القياسية في تعريفالمشيد (بالإنجليزية:constructors)والمهدم (بالإنجليزية:destructors).
class foo extend كيفية تعريف الصنف foo الذي يرث الصنف bar، وتعريف الدالة العامة mystaticfunc والتي يمكن استدعاءها بالشكل التالي foo::mystaticfunc();
تضم بي إتش بي عدد كبير من المكتبات الحرة والمجانية، أغلب هذه المكتبات تعطي بي إتش بي طبيعتها كلغة لكتابة تطبيقات الوب، حيث تحتوي على مكتبات للوصول إلىFTP ومجموعة من مكتبات الوصول إلىقواعد البيانات مثلماي إس كيو إلوإس كيو لايت وغيرها، العديد من الدوال تشبه دوال لغةسي.
بي إتش بي تسمح للمطورين بكتابة إضافات لها باستخدام لغةسي لإضافة وظائف جديدة، هناك أكثر من نوع للإضافات بعضها يترجم مع شيفرة بي إتش بي والبعض الآخر يعمل في وقت التشغيل (أثناء تنفيذ البرنامج)، تم استخدام الإضافات لدعم مجموعة من الدوال مثل دوال التحكم في العمليات لنظميونكس، لإضافةواجهة برمجة تطبيقات ويندوزوكورل وبعض الميزات غير المسبوقة مثلآي.آر.سي وغيرها الكثير، هناك موقع يطلق عليه اسمPECL يجمع الإضافات ضمنه.
وظيفة برامج التشفير هي تشفير ملفات بي إتش بي إلى صيغة غير مفهومه بهدف إخفاء الشيفرة البرمجية لعدة أسباب، البعض يرى أنها أسباب أمنية، والبعض يرى أنها مفيدة للبرامج التجارية، يوجد نوعين لبرامج التشفير، النوع الأول يقوم بإخفاء الشيفرة المصدرية، النوع الثاني يقوم بترجمة الشيفرة إلى شيفرة أخرى، ثم يتم تركيب إضافة معينة حتى تقوم بدورها بترجمة الشيفرة الناتجة وجعلها مفهومة من ناحية المحرك الذي سوف يقوم بتنفيذها، أكثر برامج التشفير شهرة هي التي توفرهاتقنيات ZendوionCube المحدودة.
أما بالنسبة لبرامج تحسين الأداء، فهي تقوم بتحسين جودة الشيفرةالمترجمة عن طريق تقليل حجمها وعمل بعض التعديلات التي تقلل من وقت التنفيذ.
أخيرا بالنسبة لبرامج التسريع، فوظيفتها تحسين الأداء عن طريق عمليةالكاش، حيث تقوم بتخزين الشيفرة المترجمة فيالذاكرة حتى تستخدمها فيما بعد بدلا من الحاجة إلى ترجمة وتحويل الشيفرة في كل مرة يطلب فيها الملف، تتوفر برامج تجارية مثلZend Platform وأخرى حرة مثلxcacheوeAcceleratorوAPC
بي إتش بي لديها دليل يحتوي على توثيق لجميع الدوال التي توفرها، بالإضافة إلى إجابة العديد من الأسئلة يمكن إيجادها بعد عمل بحث بسيط على شبكة الإنترنت، كما أن مستخدمي بي إتش بي يساعدون بعضهم البعض عن طريقبرامج الدردشة،المنتدياتوالمجموعات البريدية، والعديد من الأماكن متوفرة لمساعدة المبرمجين المبتدئين في بي إتش بي.
بي إتش بي تستخدم ميزةعلامات الاقتباس السحرية (بالإنجليزية:Magic quotes) والتي تحاول تجاهل العلامتين ' و " في النصوص التي تستخدم في قواعد البيانات من أجل منع ثغراتحقن SQL. هذا يؤدي إلى بعض التشويش حيث لا يتم التفريق بين البيانات التي تعالجها هذه الميزة من غيرها التي لا تعالجها.
دعمTrait، دعم خاصية الجملة القصيرة. العناصر التي تمت إزالتها: register_globals، safe_mode، allow_call_time_pass_reference، Session_register ()، Session_unregister () و Session_is_registered (). خادم ويب مدمج. العديد من التحسينات على الميزات الموجودة، والأداء وانخفاض متطلبات الذاكرة.
^مذكور في:ملف استنادي متكامل. مُعرِّف الملف الاستنادي المُتكامِل (GND):4546126-0. لغة العمل أو لغة الاسم:الألمانية. الوصول: 31 مايو 2021. المُؤَلِّف: مكتبة ألمانيا الوطنية.