PHP لغة مفسّرة، أي أنها تنفّذ الكود الذي تكتبه مباشرة.
ملفات كود PHP هي ملفات نصية تحتوي على وسم فتح PHP هو <?php لتحديد بداية كود PHP.
وإذا كان الملف يحتوي على كود PHP فقط، يمكنك حذف وسم الإغلاق ?> المستخدم لتحديد نهاية كود PHP.
راجع توثيق وسم PHP لتتعلّم المزيد عن وسم PHP.
<?php
// All PHP code goes here
// No closing tag required at the end
لتبسيط القراءة، تحذف جميع أمثلة الكود وسم فتح PHP <?php.
لكننا نضعه في جميع تمارين PHP، فلا حاجة لإضافته بنفسك.
يجب أن تنتهي جميع العبارات، مثل الإسنادات أو استدعاءات الدوال، بـ ; لفصل التعليمات.
ولا يُسمح بحذف ; (كما في JavaScript)، ويؤدي ذلك إلى أخطاء في الصياغة.
تعلّم المزيد عن فصل التعليمات من توثيق PHP.
$message = "Success!"; // Statement correctly ends with `;`
$message = "I know JavaScript." // PHP Parse error: syntax error, [...]
PHP لغة برمجة ذات أنواع ديناميكية.
لا يُتحقق من أنواع القيم إلا أثناء تشغيل البرنامج.
وباستخدام عامل الإسناد =، يمكن إسناد أي نوع من القيم إلى أي اسم متغير.
ويجب أن يبدأ اسم المتغير بعلامة الدولار $.
للتعمّق أكثر في المتغيرات، راجع توثيق متغيرات PHP.
$count = 1; // Assign an integer value of 1
$count = 2; // Re-assign a new value to the variable
$count = false; // You may assign any value type
// Strings can be created by enclosing the characters
// within single `'` quotes or double `"` quotes.
$message = "Success!";
يمكن تمرير القيم الحرفية والقيم المخزّنة في المتغيرات إلى الدوال. وتُنشأ متغيرات جديدة عند تعريف وسائط الدالة، لتحمل القيم التي مُرّرت إليها.
// Declare the window_width function
function window_width($width)
{
echo $width; // Access the value passed into the function as $width
// ...
}
window_width(100); // Call the function with the literal value 100
$newWidth = 100;
window_width($newWidth); // Call the function with the value stored in $newWidth
يمكن للدوال أن تُرجع قيمًا باستخدام الكلمة المفتاحية return.
ويمكن أن تكون القيم المُرجَعة قيمًا حرفية، أو مخزّنة في متغيرات، أو نتيجة عبارة.
function window_height()
{
$heightOffset = 10;
return 100 + $heightOffset;
}
تُسمّى الدوال الموجودة داخل الأصناف ونسخها طُرقًا.
ولاستدعاء طريقة، يُسبَق الاسمُ بالنسخة و->.
وتُنشأ نسخة الصنف بعملية new.
تستطيع الطرق الوصول إلى المتغير الخاص $this، الذي يشير إلى النسخة الحالية.
<?php
// Calculator.php
class Calculator {
// ...
public function sub($x, $y)
{
return $this->add($x, -$y); // Calls the method add() of the current instance
}
public function add($x, $y)
{
return $x + $y;
}
}
$calculator = new Calculator(); // Creates a new instance of Calculator class
$calculator->sub(3, 1); // Calls the method sub() of the instance stored in $calculator
// => 2
سنتعمّق أكثر في الدوال والأصناف في تمارين لاحقة.
كأسلوب أساسي في Debug، تساعد طباعة القيم ومحتويات المتغيرات على فهم ما يحدث. تستطيع PHP طباعة القيم باستخدام:
echo $variable; لإخراج تمثيل نصي للقيمةprint $variable;، وهو مماثل لـ echo $variable;
var_dump($variable); للحصول على رؤية أعمق للقيمة، مثل النوع الذي يراه PHPعند استخدام echo أو print: لن تظهر السلاسل النصية الفارغة، ولا false، ولا null.
أما الأصناف والنسخ فستؤدي إلى حدوث خطأ.
استخدم var_dump() لرؤية هذه.
في المحرر على الإنترنت، يظهر الإخراج الذي تنتجه مع نتائج الاختبارات. وعند استخدامك واجهة سطر الأوامر، يظهر الإخراج مختلطًا بمؤشّر التقدّم قبل ملخّص الاختبارات.
الملفات هي الوحدات الأساسية لتنظيم الكود في PHP ولغات أخرى كثيرة. ولإظهار اسم الملف الذي يجب النظر إليه داخل كتلة الكود، نستخدم تعليقًا. ولا حاجة أبدًا لإضافة مثل هذه التعليقات إلى ملفاتك:
<?php
// NameOfPhpFile.php
[...]
يمكن أن يوجد الكود والدوال والأصناف معًا في ملف واحد. لكن عادةً تكون هذه الأنواع من وحدات الكود في ملفات منفصلة.
من الممارسات الشائعة أن يحتوي كل ملف على صنف واحد، وأن يطابق اسم الملف اسم الصنف.
<?php
// Calculator.php
class Calculator {
// ...
function add($x, $y)
{
return $x + $y;
}
}
وعادةً ما تُجمَّع الدوال معًا في ملفات تصف موضوعها المشترك.
<?php
// window_handling.php
function window_paint()
{
// ...
}
function window_size($width, $height)
{
// ...
}
function window_move($x, $y)
{
// ...
}
وغالبًا ما توجد ملفات تحتوي على عبارات للتنفيذ المباشر، مثل index.php الذي يُستخدم عادةً كنقطة دخول لتطبيق ويب.
<?php
// index.php
$sum = add(1, 2);
// ...
يجب أن تكون أسماء الأصناف كلها بصيغة PascalCase.
وبحسب معيار الأسلوب المتبع؛ قد تكون أسماء المتغيرات والدوال والطرق إما بصيغة camelCase أو snake_case.
وقد تحتوي الأسماء على الحروف a-zA-Z والأرقام 0-9 والشرطات السفلية _، لكنها لا يمكن أن تبدأ برقم.
تبدأ التعليقات أحادية السطر بـ //، ويمكن تطويق كتلة نصية بـ /* و*/ لتصبح تعليقًا متعدد الأسطر.
// Single-line comment
/*
Multi-line comment
*/