PHP هي لغة حرة مفتوحة المصدر ومجانية الاستخدام، مخصصة لتطوير تطبيقات الويب، وبيئة تطويرها الأساسية هي Linux.
إن كانت لديك خبرة سابقة مع أي لغة برمجة فلن تجد الأمر غريباً، لأن المنطق البرمجي واحد وأوامرها تشبه إلى حد كبير لغة C. وإن كنت من مستخدمي إحدى اللغات: C أو ++C أو #C أو Java، فستجد مرونة كبيرة توفرها هذه اللغة في التعامل بخلاف ما اعتدت عليه.
أول ما سيصادفك من هذه المرونة أن هذه اللغة لا تحتاج لتعريف متغيرات، فقط إسناد القيمة للمتغير، وسيقوم مترجم اللغة بالتعرف على القيمة التي يحويها المتغير تلقائياً.
ملاحظة: أوامر لغة PHP غير حساسة لحالة الحرف، بمعنى يمكنك الكتابة بالحرف الكبير أو الصغير على حد سواء في أوامر اللغة.
بما أن صفحة الويب يمكن أن تتضمن أكواداً غير أكواد PHP، فإذا يجب تنبيه المترجم أين أكواد PHP ليتم التعرف عليها. لهذا عند كتابة أكواد داخل الصفحة يجب تضمينها ضمن وسم الفتح <?php ووسم الغلق ?>. هناك أيضاً الشكل المختصر <? لكن تم إيقاف استخدامه إلا إذا عدّلت ملف php.ini.
وكما جرى العرف والعادة، غالباً ما تكون أول جملة افتتاحية طباعة "!hello world"، وللطباعة على المتصفح نستخدم echo بأقواس أو بدون أقواس كالتالي:
<?php
echo ("hello ");
echo "world !!";
?>
ملاحظة: يُسمح لك باستخدام المسافات الفارغة والسطر كيفما تشاء، لكن يجب أن يتم الفصل بين الأوامر البرمجية بالفاصلة المنقوطة (;).
يمكننا أيضاً تطبيق وسوم HTML وطباعتها كالتالي (مع ملاحظة استبدال علامة الاقتباس المزدوجة إلى مفردة حتى لا يحدث تضارب بين العلامتين، أو استخدام علامة \ قبل العلامة التي لا تريد أن يحدث لها تضارب مع علامة أخرى):
<?php
echo "<div style='color:#F00;'>hello world !!</div>";
?>
// أو باستخدام علامة الاقتباس المزدوجة بدل المفردة:
<?php
echo '<div style="color:#F00;">hello world !!</div>';
?>
// أو باستخدام علامة \ قبل العلامة المراد حمايتها من التضارب:
<?php
echo "<div style=\"color:#F00;\">hello world !!</div>";
?>
// وللدمج بين نصين نستخدم علامة النقطة:
<?php
echo "hello"." world !!";
?>
كل ما نحتاجه لتعريف متغير في لغة PHP هو أن يسبق اسم المتغير علامة $، ولا يشترط أن تضع للمتغير قيمة عند بداية التعريف، لكن يصح استخدامه قبل تعيين قيمة له، ويتم التعرف على نوع البيانات المسندة للمتغير تلقائياً.
تسمية المتغيرات تتبع القواعد العامة بأن يبدأ اسم المتغير بحرف من حروف اللغة الإنجليزية أو الشرطة السفلية _، ولا يحتوي غير الحروف الإنجليزية والأرقام (يمكن استخدام اللغة العربية في تسمية المتغيرات ضمن جدول رموز اللغة الحالية المستخدمة على الجهاز). وتسمية المتغيرات حساسة لحالة الحرف؛ أي أن استخدامك حرف كبير غير استخدامك حرف صغير.
<?php
$var1; // إسناد قيمة ابتدائية للمتغير
$var2 = 10; // إسناد عدد صحيح
$var3 = 10.23; // إسناد عدد كسري
$var4 = null; // إسناد القيمة الفارغة
$var5 = false; // إسناد قيمة منطقية
$var6 = "Mahmoud"; // إسناد سلسلة نصية
$var7 = 'Mostafa'; // إسناد سلسلة نصية
$var1 = $var7; // إسناد قيمة المتغير $var7 إلى المتغير $var1
// طباعة المتغيرات معاً
echo $var1.$var2.$var3.$var4.$var5.$var6.$var7;
?>
يمكن للغة PHP كغيرها من لغات البرمجة القيام بمختلف العمليات الحسابية على الأعداد، ومن هذه العمليات البسيطة: الجمع، والطرح باستخدام الرمز - +، والضرب باستخدام الرمز *، والقسمة /، وعلامة باقي القسمة %.
<?php
$var1 = 10; // إسناد عدد صحيح
$var2 = 20.23; // إسناد عدد كسري
$var3 = $var1*$var2; // عملية ضرب متغيرين
$var4 = $var1/$var2; // عملية قسمة متغيرين
$var5 = $var1%$var2; // عملية باقي القسمة
echo '$var1+$var2 = '.($var1+$var2).'<br>'; // طباعة ناتج عملية جمع وطباعة أسماء المتغيرات
echo "$var1+$var2 = ".($var1+$var2).'<br>'; // طباعة ناتج عملية جمع وطباعة قيم المتغيرات
echo $var3.'<br>'.$var4."<br>".$var5; // طباعة باقي المتغيرات
?>
من المعروف أن العمليات الحسابية تتم على المتغيرات العددية فقط، فهل تتبع لغة PHP كباقي اللغات هذا الطمط؟ حاول تجربة نفس المبدأ على متغيرات نصية تبدأ برقم أو بحرف — ستلاحظ أن اللغة تحاول تحويل الجزء الرقمي من السلسلة النصية تلقائياً بدل إصدار خطأ كما تفعل لغات أخرى.
يمكن استخدام معاملات التحويل التالية أمام أي متغير لتحويل نوعه:
| المعامل | الوظيفة |
|---|---|
| int | لتحويل نوع المتغير إلى أرقام صحيحة. |
| double / float | لتحويل نوع المتغير إلى عدد ذو فاصلة عائمة. |
| boolean / bool | لتحويل نوع المتغير إلى قيمة منطقية. |
| string | لتحويل نوع المتغير إلى سلسلة نصية. |
<?php
$var1 = 10;
$var2 = 20.12;
$var3 = '1123456789123456789123456789user1';
echo "(double)$var1 = ".(double)$var1."<br>";
echo "(int)$var2 = ".(int)$var2."<br>";
echo "(string)$var1 = ".(string)$var1."<br>";
echo "(int)$var3 = ".(int)$var3."<br>";
echo "(int)null = ".(int)null ."<br>";
echo "(int)true = ".(int)true ."<br>";
?>
وباختصار: السلسلة النصية إذا كانت فارغة فهي تعني false، وإن كان بها أي قيمة كانت فهي تعني true حتى بدون عملية تحويل. وكذلك الصفر أو 0.0 يعني false، بخلاف ذلك سواء كان عدداً صحيحاً أو كسرياً أو عدداً سالباً يعني true.
معامل الزيادة ++ ومعامل النقصان --: ففي حالة كونه قبل المتغير يُزاد أو يُنقَص من قيمة المتغير قبل تنفيذ الكود البرمجي بمقدار واحد، لكن في حالة كونه بعد المتغير ينفذ الكود البرمجي الموجود به أولاً ومن ثم زيادة أو نقصان المتغير بمقدار الواحد.
<?php
$var1 = 0;
$var2 = 0;
$var3 = 0;
$var4 = 0;
echo '++$var1 = '.(++$var1); // زيادة قبل الاستخدام
echo '<br>$var1 = '.$var1;
echo '$var2++ = '.$var2++; // زيادة بعد الاستخدام
echo '<br>$var2 = '.$var2;
echo '--$var3 = '.--$var3; // نقصان قبل الاستخدام
echo '$var4-- = '.$var4--; // نقصان بعد الاستخدام
?>
| المعامل | الوظيفة |
|---|---|
| += | جمع قيمة على قيمة المتغير السابقة. |
| -= | طرح قيمة من قيمة المتغير السابقة. |
| *= | ضرب قيمة في قيمة المتغير السابقة. |
| /= | قسمة قيمة المتغير السابقة على قيمة. |
| %= | إيجاد باقي قيمة المتغير السابقة على قيمة. |
| .= | دمج قيمة إلى قيمة المتغير السابقة. |
<?php
$var1 = 10; $var2 = 10; $var3 = 10;
$var4 = 10; $var5 = 10; $var6 = 10;
$var1 += 10; // تساوي: $var1 = $var1 + 10;
$var2 -= 10; // تساوي: $var2 = $var2 - 10;
$var3 *= 10; // تساوي: $var3 = $var3 * 10;
$var4 /= 10; // تساوي: $var4 = $var4 / 10;
$var5 %= 10; // تساوي: $var5 = $var5 % 10;
$var6 .= 10; // تساوي: $var6 = $var6 . 10;
?>
هناك طريقتان لكتابة أكواد PHP و HTML معاً: إما استخدام جملة الطباعة، أو إغلاق وسم كود PHP والبدء بكتابة أكواد HTML ومن ثم إعادة فتح وسم PHP لإتمام كتابة أكواد PHP:
<?php
$var1 = 'value1';
$var2 = 'value2';
?>
<!DOCTYPE HTML>
<html dir="rtl">
<head>
<title>التمرين</title>
</head>
<body>
<div style="color:#F00;">
<?php echo $var1; ?>
</div>
<div style="color:#00F; font-size:28px;">
<?php echo $var2; ?>
</div>
</body>
</html>
<?php
$var1 = 'value1';
$var2 = 'value2';
echo '
<!DOCTYPE HTML>
<html dir="rtl">
<body>
<div style="color:#F00;">
'.$var1.'
</div>
<div style="color:#00F; font-size:28px;">
'.$var2.'
</div>
</body>
</html>';
?>
وكل طريقة تكون مناسبة في موضع أكثر من الأخرى. ملاحظة: أكواد PHP تعمل ضمن ملف بامتداد php. لكن تحتاج لسرفر ليعمل، والعكس صحيح.
اضغط على كل بطاقة لعرض تعريف المصطلح.
10 مصطلحات أساسية لهذه الوحدة.
يتكوّن الاختبار من 5 أسئلة صح/خطأ، و5 أسئلة اختيار من متعدد، و3 أسئلة إنشائية. تُصحَّح الأسئلة الموضوعية تلقائياً، بينما تعرض الأسئلة الإنشائية إجابة نموذجية لتقييم إجابتك بنفسك.
التعليقات في أكواد PHP
تستخدم العلامتين
//أو العلامة#لإضافة تعليق سطر واحد، ويمكنك استخدام بداية تعليق بالرمز/*وانتهائه بالرمز*/لحصر ما بينهما تعليق أكثر من سطر: