بنية لغة PHP




التعرف على بنية لغة PHP

الجزء الأول



الموضوعات الرئيسية التي سوف نتعلمها في هذا الدرس:
·         تضمين PHP في  HTML.
·         إضافة محتوى ديناميكي تفاعلي في HTML .
·         كيفية الوصول إلى المتغيرات الموجودة ضمن النموذج form  .
·         فهم المعرفات identifiers .
·         كيفية إنشاء المتغيرات.
·          دراسة أنواع المتغيرات.
·          كيفية إعطاء قيم للمتغيرات.
·          كيفية تعريف الثوابت واستخدامها.
·         معرفة ما هو مجال أو نطاق المتغيرات.
·         فهم التعابير البرمجية (العوامل ، الأولويات) .
·         استخدام التوابع (functions).
·         التعامل مع القرارات باستخدام : if , else , switch .
·         التعامل مع الحلقات باستخدام : while , for , do  .
·         الخروج من البرنامج النصي أو من بنية التحكم.

البيئة البرمجية:

للعمل من خلال الأمثلة الواردة في هذا الدرس نحتاج إلى ما يلي:
-          Web server لذا سوف نستخدم Apache server
-          PHP
-          MYSQL Database
يمكن تنزيل package كاملة تتضمن ما سبق من خلال الموقع التالي : https://www.appserv.org

نموذج تطبيقي:

لنفترض وجود شركة قطع غيار السيارات تسمى Bob تريد إنشاء تطبيق عبر الانترنيت لبيع منتجاتها.

إنشاء نموذج الطلب:

قام مبرمج HTML من شركة  Bob  بإعداد نموذج طلب للأجزاء التي يبيعها ، يود بوب أن يكون قادرًا على معرفة ما طلبه عملاؤه ، وأن يحدد إجمالي ما طلبوه ، و أسعار طلباتهم ، وتحديد مقدار ضريبة المبيعات المستحقة على الطلبات.
يمكن رؤية النموذج في الشكل التالي:



وليكن الكود موجود ضمن ملف orderform.html على الشكل التالي:

<form action="processorder.php" method="post">
<table style="border: 0px;">
<tr style="background: #cccccc;">
<td style="width: 150px; text-align: center;">Item</td>
<td style="width: 15px; text-align: center;">Quantity</td>
</tr>
<tr>
<td>Tires</td>
<td>
<input type="text" name="tireqty" size="3" maxlength="3" /></td>
</tr>
<tr>
<td>Oil</td>
<td>
<input type="text" name="oilqty" size="3" maxlength="3" /></td>
</tr>
<tr>
<td>Spark Plugs</td>
<td>
<input type="text" name="sparkqty" size="3" maxlength="3" /></td>
</tr>
<tr>
<td colspan="2" style="text-align: center;">
<input type="submit" value="SubmitOrder" />
</td>
</tr>
</table>
</form>

لاحظ أنه تم تعيين الإجراء  actionعلى اسم البرنامج النصي processorder.php الذي سيعالج طلب الزبون (سنتكتب هذا البرنامج النصي فيما بعد).
وعند الضغط على زر SubmitOrder سيتم إرسال بيانات المستخدم إلى عنوان الـ  URL  المحدد بـ action   والذي هنا هو نفسه الملف processorder.php ، حيث يتم إرسال المعلومات حسب الطريقة المذكورة بـ method  والتي هي هنا post  والتي تعني إرسال البيانات برسالة منفصلة عن عنوان الـ URL  ، وهناك طريقة أخرى تسمى get وتعني الحاق البيانات بنهاية عنوان الـURL  .
أما أسماء الحقول tireqty , oilqty , sparkqty  الموجودة ضمن الـ form سيتم إعادة استخدامها في الملف   processorder.php  ومن الضروري أن تكون هذه الأسماء ذات معنى بحيث يمكن تذكرها بسهولة عند بدء كتابة البرنامج النصي PHP .
يجب أن تفكر في اعتماد معيار لترميز أسماء الحقول بحيث تكون جميع أسماء الحقول في جميع أنحاء موقعك لها نفس التنسيق.

معالجة النموذج:

لمعالجة النموذج، نحتاج إلى إنشاء البرنامج النصي المذكور سابقاً في الصفة action والذي هو processorder.php  ولذلك نفتح محرر النص الخاص ونقوم بإنشاء هذا الملف ثم اكتب فيه الكود التالي:

<! DOCTYPE html>
<html>
<head>
<title>Bob's Auto Parts - Order Results</title>
</head>
<body>
<h1>Bob's Auto Parts</h1>
<h2>Order Results</h2>
</body>
</html>

والآن سنقوم بشرح النقاط التي ذكرناها في مقدمة هذه المحاضرة.

أولاً : تضمين كود PHP في  HTML:


لاحظ كيف أن كل شيء كتبته حتى الآن هو مجرد HTML لقد حان الوقت لإضافة كود  PHP  ضمن الـ HTML لذا تحت العنوان <h2> في نفس الملف السابق ، أضف الأسطر التالية:

<?php
echo '<p>Order processed.</p>';
?>

احفظ الملف بالاسم  processorder.php ، ومن ثم في المتصفح اطلب الصفحة  orderform.html وقم بملء نموذج الطلب ثم انقر على الزر SubmitOrder عندها ستظهر لك النتيجة التالية:


إذا حاولنا عرض شيفرة المصدر من المتصفح نشاهد الكود التالي:
 <! DOCTYPE html>
<html>
<head>
<title>Bob's Auto Parts - Order Results</title>
</head>
<body>
<h1>Bob's Auto Parts</h1>
<h2>Order Results</h2>
<p>Order processed.</p>
</body>
</html>

لن يكون كود الـ  PHP  واضح في الشيفرة وذلك لأن مترجم الـ   PHP  قد تم تشغيله عبر البرنامج النصي من خلال التعبير <?php واستبداله بنتيجة التنفيذ.
  هذا يعني أنه من خلال مترجم الـ  PHP يمكنك إنتاجك كود  HTML   واضح و قابل للعرض من قبل  أي متصفح بمعنى آخر لا يحتاج متصفح الموجود لدى المستخدم إلى فهم كود الـ PHP .

هذا المثال يوضح مفهوم البرمجة النصية من جهة المخدم   server-side scripting  ، حيث تم تفسير كود الـ PHP   وتنفيذه على الـ web server  وهذه ما يميزه عن لغات البرمجة من جهة المستخدم  client-side  والتي يتم تفسيرها وتنفيذها داخل المتصفح الموجود لدى المستخدم.
في المثال السابق استخدمنا أربعة أنواع من النصوص هي:
·         HTML
·         PHP tags
·         PHP statements
·         Whitespace
·         comments
سنقوم بشرح كل منها.

1.      PHP Tags    :

بدأ كود PHP في المثال السابق بـ   <?php   وانتهى بـ   ?>  وهذا مشابه إلى جميع  HTML Tags  لأنها تبدأ بالرمز  (<) وتنتهي بالرمز  (>).
 تسمى هذه الرموز (<?php ، ?> ) بالاسم  PHP tags  فهي تخبر المخدم web server متى يبدأ كود الـ PHP  ومتى ينتهي ، فكل الكود الموجود ضمن هذين الرمزين يتم التعامل معه كـ  PHP  ، وكل ما هو خارج هذين الرمزين يتم التعامل معه كـ HTML عادي.
هناك بالفعل طريقتين لكتابة PHP tags  وكلاهما مقبول:
·         XML style:
يكتب على الشكل التالي:       <?php echo '<p>Order processed.</p>'; ?>

·         Short style:
يكنب على الشكل التالي:        <? echo '<p>Order processed.</p>'; ?>

2.      PHP Statements :

يمكنك إخبار مترجم PHP بما يجب القيام به من خلال كتابة عبارات PHP  (PHP Statements) ضمن PHP tags .
في المثال السابق استخدمنا العبارة التالية:  echo '<p>Order processed.</p>';
هذه العبارة بسيطة جداً فهي تطبع العبارة الموجودة ضمن الرمزين  ' ' على المتصفح .
لاحظ أن هناك فاصلة منقوطة في نهاية العبارة السابقة ، هذه الفاصلة منقوطة تفصل العبارات في PHP  عن بعضها لتشكل كل منها تعليمة برمجية منفصلة.

3.      Whitespace :

تُعرف المسافات بين الحروف مثل الأسطر الجديد والمسافات وعلامات التبويب باسم مسافة بيضاء.
تتجاهل المتصفحات هذه المسافة البيضاء ضمن  HTML حتى أن مترجمات  PHP تتجاهلها أيضاً.
بفرض لدينا الكود التالي:

<h1>Welcome to Bob's Auto Parts!</h1>
<p>What would you like to order today?</p>
 والكود التالي:
<h1>Welcome to Bob's
Auto Parts!</h1>
<p>What would you like
to order today?</p>

 كلاهما لهما النتيجة نفسها على المتصفح ، ومع ذلك ، يمكنك استخدام مسافة بيضاء بشكل معقول في كتابة كود الـ  HTML  كوسيلة مساعدة لتعزيز إمكانية قراءة الكود وينطبق الشيء نفسه على  PHP.

4.      Comments :

التعليقات في التعليمات البرمجية هي عبارة عن ملاحظات للأشخاص الذين يقرؤون الكود.
يمكن استخدام التعليقات لشرح الغرض من البرنامج النصي ، ومن الذي كتبه ، ولماذا تمت كتابته ، و الطريقة التي كتب بها.......
يتجاهل مترجم PHP أي نص في التعليقات حيث يتخطاها مما يجعلها تعادل مساحة بيضاء.

يدعم PHP التعليقات المتعدد الأسطر على الشكل التالي:
/* Author: Bob Smith
Last modified: April 10
This script processes the customer orders.
*/

يجب أن تبدأ التعليقات متعددة الأسطر بـ / * وتنتهي بـ * /   ولا يمكن أن تكون متداخلة.
يمكن أيضًا استخدام التعليقات ذات سطر واحد على أحد الشكلين التاليين:
echo '<p>Order processed.</p>'; // Start printing order

echo '<p>Order processed.</p>'; # Start printing order

في كل من هذه النمطين السابقين ، كل شيء يكتب بعد الرمز  (# أو //) يعتبر تعليق.
أما في الشكل التالي :
// here is a comment ?> here is not
فالنص قبل علامة الإغلاق ?>   يعتبر تعليق ، أما النص بعد هذه العلامة سيعامل على أنه HTML لأنه خارج العلامة الختامية.

ثانياً : إضافة محتوى ديناميكي:

حتى الآن ، لم نستخدم لغة  PHP لفعل أي شيء لا يمكنك فعله باستخدام  HTML عادي.
إن السبب الرئيسي لاستخدام لغة البرمجة PHP (وهي لغة من جهة المخدم) هو القدرة على توفير ديناميكية المحتوى لمستخدمي المواقع.
سوف نقوم بشرح تطبيق مهم يتغير فيه المحتوى وفقًا لاحتياجات المستخدمين أو مع مرور الوقت الذي سوف يحافظ فيه الزوار على العودة إلى الموقع.
 استبدل كود  PHP  في الملف  processorder.php  بما يلي:

<?php
echo "<p>Order processed at ";
echo date('H:i, jS F Y');
echo "</p>";
?>

يمكن كتابة الكود السابق على سطر واحد باستخدام النقطة (.) التي تقوم بضم المحارف على الشكل التالي:

<?php
echo "<p>Order processed at ".date('H:i, jS F Y')."</p>";
?>

هنا يوجد التابع date() المبنية مسبقاً ضمن الـ  PHP  التي تخبر الزائر بالتاريخ والوقت الذي تمت فيه معالجة الطلب. ستكون هذه المعلومات مختلفة في كل مرة يتم فيها تشغيل البرنامج النصي.
 حيث ستكون النتيجة هي كالتالي:



·         استدعاء التوابع:

انظر إلى استدعاء التابع  date()  في المثال السابق ، هذا هو الشكل العام لاستدعاء التوابع ، حيث يوجد ضمن لغة PHP  مكتبة واسعة من التوابع التي يمكنك استخدامها عند برمجة تطبيقات الويب، وأغلب هذه الوظائف تحتاج إلى تمرير بعض البيانات إليها وإرجاع بعض البيانات.
نلاحظ في الاستدعاء التالي   date('H:i, jS F')  أنه تم تمرير string (سلسلة محارف) إلى التابع داخل زوج من الأقواس.
تسمى العناصر التي تمرر للتوابع والموجودة داخل الأقواس المعاملات parameters ، وهي الإدخال الذي سوف يستخدمه التابع لإخراج بعض النتائج المحددة.

·         استخدام الدالة أو التابع date() :

المعاملات التي يجب تمريرها إلى الدالة date () عبارة عن string تمثل لأسلوب الذي نريده في إخراج النتيجة يمثل كل حرف في السلسلة جزءًا واحدًا من التاريخ و الزمن.
H :  يعبر عن الساعة بتنسيق 24 ساعة مع وجود صفر عند الحاجة.
i :  يعبر عن  الدقائق مع وجود صفر عند الحاجة.
j
:  يعبر عن  اليوم من الشهر و بدون وجود صفر.
S :  يمثل اللاحقة التي تفيد الترتيب th .
F  : يعبر عن الاسم الكامل لهذا الشهر.
وسوف نتناول شرح أكبر عن هذه الدالة فيما بعد.

ثالثاً: الوصول إلى المتغيرات النموذج Form :

·         متغيرات النموذج Form :

ضمن برنامج الـ  PHP  يمكن الوصول إلى كل حقل في النموذج  form  واعتباره متغير  variable من متغيرات PHP   ، ويرتبط اسم هذا المتغير باسم الحقل في النموذج form .
جميع أسماء المتغيرات في PHP  تبدأ بعلامة الدولار ($). (نسيان علامة الدولار خطأ شائع في البرمجة)
لو فرضنا وجود الحقل tireqty  ونريد الوصول إلى محتوياته ، عنده سنكتب الطريقة التالية:
$_POST [ 'tireqty']
حيث $_POST   هي مصفوفة تحتوي على بيانات تم إرسالها عبر طلب HTTP POST ، أي أنه تم تعيين الطريقة method=”post”  في النموذج form.
و هناك ثلاثة من هذه المصفوفات التي قد تحتوي على بيانات النموذج وهي :
 $_POST ,   $_GET  $_REQUEST ,
حيث تحتوي المصفوفة $ _REQUEST على مزيج من جميع البيانات المقدمة عبر GET أو POST .
وحتى نقوم بنسخ قيمة متغير واحد إلى آخر، نستخدم علامة المساواة في لغة PHP (=) على الشكل التالي:
$tireqty = $_POST ['tireqty']
حيث نقوم هنا بإنشاء متغير جديد اسمه $tireqty  وننسخ محتويات $POST ['tireqty']  إليه.
لنضع الكود التالي في ملف الـ PHP:
<?php
// create short variable names
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
?>
هذا الكود لن يعطي أي إخراج لذا من الممكن وضع أعلى أو أسفل <html> في ملف الـ HTML   وبدون أي فرق لكن غالبا ما نضع مثل هذه الكتل في بداية البرنامج النصي ليكون العثور عليها أسهل.

في الكود السابق أنشأنا ثلاثة متغيرات جديدة :   $tireqty  $oilqty , $sparkqty ,
     يمكننا إخراج قيم هذه المتغيرات إلى المستعرض على الشكل التالي:
echo $tireqty.' tires <br />';

ومع ذلك لا ينصح بهذه الطريقة لأننا لم نقم بفحص المتغيرات للتحقق من صحة البيانات المدخلة من قبل المستخدم (حاول إدخال بيانات خاطئة عن عمد ولاحظ ما يحدث) وهذا أمر بالغ الأهمية.
في الوقت الحالي يكفي أن نعرف أنه يجب علينا تمرير البيانات التي أدخلها المستخدم إلى دالة تسمى  htmlspecialchars () وذلك قبل إظهارها على المتصفح وبالتلي يجب أن نكتب مثلاً:
echo htmlspecialchars ($tireqty).' tires <br />';

لجعل البرنامج النصي يبدأ في فعل شيء ما بشكل مرئي على المتصفح نضيف الأسطر التالية إلى أسفل برنامج الـ PHP السابق:
echo '<p>Your order is as follows: </p>';
echo htmlspecialchars($tireqty).' tires<br />';
echo htmlspecialchars($oilqty).' bottles of oil<br />';
echo htmlspecialchars($sparkqty).' spark plugs<br />';


وعند التنفيذ ستكون النتيجة على الشكل التالي:


·         String Concatenation :

في المثال السابق يقوم البرنامج من خلال التعليمة echo  بطباعة القيمة التي كتبها المستخدم في كل حقل من النموذج form متبوعة بنص توضيحي.
بالرجوع إلى عبارة الطباعة نلاحظ وجود نقطة (.) بين اسم المتغير والنص التالي له مثل :
echo htmlspecialchars($tireqty).' tires<br />';

هذه النقطة هي التي تقوم بالجمع بين أكثر من string ، و نستستخدمها غالبًا عندما نريد  طباعة النتائج دفعة واحدة مع تعليمة   echo واحدة دون الحاجة إلى تكرار هذه التعليمة عدة مرات مع كل عملية طباعة.
أيضاً يمكن طباعة قيمة متغير ما من خلال وضع المتغير داخل سلسلة ذات علامات اقتباس مزدوجة كما في المثال التالي:
$tireqty = htmlspecialchars($tireqty);
echo "$tireqty tires<br />";

هذا الكود مكافئ للكود السابق وله نفس النتيجة ، وتسمى عملية استبدال المتغير بمحتوياته داخل سلسلة ذات علامات الاقتباس المزدوجة  بـ interpolation وهذه العملية لا تصلح في حال كانت علامة الاقتباس فمثلاً:
echo '$tireqty tires<br />';

في هذا الكود لا يتم استبدال المتغير بقيمته إنما يرسل كنص كما هو إلى المتصفح.

رابعاً: فهم المعرفات identifiers :


المعرفات هي أسماء المتغيرات variables ، الدوال functions ، الصفوف classes .
هناك مجموعة من القواعد البسيطة التي يجب أخذها بعين الاعتبار عند الإعلان عن المعرفات وهي:
·         يمكن أن تكون المعرفات من أي طول ويمكن أن تتكون من أحرف وأرقام.
·         لا يمكن أن تبدأ المعرفات برقم.
·         المعرفات في PHP حساسة لحالة الأحرف باستثناء أسماء الدوال functions حيث يمكن استخدام أسمائهم في أي حال.
·          يمكن أن يكون للمتغير نفس اسم الـ function   لكن هذا مربك في الاستخدام لذا يجب تجنب ذلك ، لكن لا يمكن إنشاء function بنفس اسم function أخرى.

خامساً: كيفية إنشاء المتغيرات:

أحد ميزات PHP هو أنه لا يتطلب منك أن تعلن عن المتغيرات قبل استخدامها حيث يتم إنشاء متغير عندما تقوم أولاً بتعيين قيمة إليه ، ويتم تعيين قيمة لمتغير ما باستخدام عامل التعيين (=) كما فعلنا عند نسخ قيمة متغير إلى آخر.
فمثلاً في موقع بوب ، نريد معرفة العدد الإجمالي للعناصر المطلوبة والمبلغ الإجمالي الذي يجب دفعه ، لذا نقوم بإنشاء متغيرين لتخزين هذه الأرقام .
في البداية نحتاج إلى تهيئة كل من هذه المتغيرات إلى الصفر على الشكل التالي:
$totalqty = 0;
$totalamount = 0.00;


سادساً: دراسة أنواع المتغيرات:

يشير نوع المتغير إلى نوع البيانات المخزنة فيه.

·         أنواع بيانات  PHP:

  يدعم PHP أنواع البيانات التالية:
·         Integer  :               عدد صحيح يستخدم للأعداد الصحيحة.
·         Float or double :  عدد حقيقي يستخدم للأرقام الحقيقية.
·         String :        تستخدم للمحارف أو السلاسل المحرفية.
·         Boolean :   تستخدم لقيم صحيحة أو خاطئة (قيم منطقية).
·         Array :        مصفوفة تستخدم لتخزين عدة عناصر.
·         Object :     غرض أو كائن يستخدم لتمثيل الصفوف classes .
·         NULL :       المتغيرات التي لم يتم منحها قيمة ، أو لم يتم ضبطها ، أو تم منحها القيمة المحددة   NULL من النوع   NULL.
·         resource :
هناك توابع functions   مبنية ضمن PHP تقوم بإرجاع متغيرات من نوع resources أي أن هذه المتغيرات هي موارد مثل التوابع المتعلقة بالاتصال بقواعد البيانات ، وهذه المتغيرات لا نستطيع التعامل معها بشكل مباشر لكن يتم إرجاعهم بواسطة توابع ويجب تمريرها كمعاملات إلى توابع أخرى.
·         Callables  :     هي في الأساس توابع functions يتم تمريرها إلى توابع أخرى.

·         قوة الأنماط:

يطلق على لغة PHP أنها لغة الأنماط الضعيفة أو لغة الأنماط المكتوبة ديناميكيًا.
 في معظم لغات البرمجة ، يمكن للمتغيرات الاحتفاظ بنوع واحد فقط من البيانات ، ويجب الإعلان عن هذا النوع قبل استخدام المتغير ، لكن في لغة  PHP  يتم تحديد نوع المتغير عند إعطائه القيمة المخصصة له.
على سبيل المثال ، نقوم بإنشاء المتغيرات  $totalqty   و   $totalamount  على الشكل التالي:
$totalqty = 0;
$totalamount = 0.00;

و نظرًا لأننا قمنا بتعيين عدد صحيح إلى  $totalqty  أصبح هذا متغير من نوع integer  ، وبالمثل أصبح    $totalamount   من النوع   float.
لكن الغريب أنه  يمكننا الآن إضافة سطر إلى النص الخاص بنا على النحو التالي:
$totalamount = 'Hello';
المتغير  $totalamount  سيكون عندها من نوع  string ، أي أنه في لغة PHP  يتغير نوع المتغير وفقاً لما يتم تخزينه فيه وفي أي وقت محدد.
هذه القدرة على تغيير الأنواع بشفافية أثناء التنقل يمكن أن تكون مفيدة للغاية ، حيث تستطيع لغة  PHP أن تعرف وبشكل أوتوماتيكي نوع البيانات الموجودة داخل المتغير و تقوم بإرجاع البيانات مع نفس النوع عند استعادة المتغير.

·         Type Casting:

نستطيع في PHP تطبيق هذه الميزة على الشكل التالي:
$totalqty = 0;
$totalamount = (float)$totalqty;

الكود في  السطر الثاني يعني أخذ القيمة المخزنة ضمن المتغير $totalqty وتفسيرها على أنها float وتخزينها في المتغير $totalamount ، وبالتالي نكون قد عرفنا متغير  $totalamount من النوع float   يحوي نفس قيمة المتغير $totalqty دون أن نغير في نوع هذا المتغير.
يوجد في PHP توابع  functions  مبنية مسبقاً من أجل اختبار الأنماط وتعديلها.

·         المتغيرات المتغيرة   Variable Variables :

يوفر PHP ميزة أخرى تسمى تغيير المتغير أي يمكننا تغيير اسم المتغير بشكل ديناميكي.
على سبيل المثال ، يمكنك أن نكتب:
$varname = 'tireqty';

وبالتالي يمكننا الآن كتابة $$varname  بدلاً من $tireqty على سبيل المثال ، يمكنك ضبط قيمة
الإطارات على النحو التالي:     $$varname = 5;
هذا يعادل:                         $tireqty = 5;
قد يبدو هذا غامضًا إلى حد ما ، لكننا سنعيد النظر في استخدامه لاحقًا.

سابعاً : كيفية تعريف الثوابت واستخدامها:

كما رأينا سابقًا ، يمكنك بسهولة تغيير القيمة المخزنة في متغير ، لكن هذا مختلف بالنسبة للثوابت حيث يتم تعريف الثوابت وإعطاؤها قيمة معينة لمرة واحدة فقط  ولا يمكن تغييرها في أي مكان آخر في البرنامج النصي.
ويتم ذلك عن طريق الدالة define على الشكل التالي:
يمكن تعريف هذه الثوابت باستخدام دالة التعريف:
define('TIREPRICE', 100);
define('OILPRICE', 10);
define('SPARKPRICE', 4);
لاحظ أن أسماء الثوابت تكتب بأحرف كبيرة ، حيث تم اقتراح ذلك حتى يكون من السهل التمييز بين المتغيرات والثوابت ، أي أن هذا الاصطلاح ليس مطلوبًا ولكنه أفضل لأنه سيجعل الكود أسهل في القراءة والصيانة.
أحد الاختلافات المهمة بين الثوابت والمتغيرات هو أنه عندما نشير إلى ثابت ما لا نحتاج إلى علامة الدولار أمامه، أي إذا كنا نريد استخدام قيمة ثابت ما فيكفي استخدام الاسم فقط.
على سبيل المثال لاستخدام أحد الثوابت التي تم إنشاؤها سابقاً يمكننا فقط أن نكتب :   echo TIREPRICE;
بالإضافة إلى الثوابت التي نقوم بتحديدها في برامجنا ، يوجد لدى لغة  PHP  عدد كبير من الثوابت المعرفة بشكل مسبق ، حيث يمكننا أن نحصل على نظرة عامة عليها من خلال تشغيل الدالة   phpinfo () التي تقوم بإعطاء قائمة بالمتغيرات والثوابت الموجودة مسبقاً في لغة  PHP بالإضافة إلى فوائد أخرى سنذكرها لاحقاً.
أحد الاختلافات الأخرى بين المتغيرات والثوابت هو أن الثوابت يمكنها تخزين منطقية  Boolean ، أعدد صحيحة integer ، float  ، string  تُعرف هذه الأنواع مجتمعة باسم القيم العددية ، أما غير ذلك من الأنواع لا يمكن تخزينها ضمن الثوابت.

ثامناً: معرفة ما هو مجال أو نطاق ( scope ) المتغيرات:

يشير مصطلح النطاق أو المجال  scope  إلى الأماكن التي يكون فيها المتغير مرئيًا ضمن البرنامج النصي.
قواعد النطاق أو المجال الأساسية الستة في PHP هي كما يلي:
·         المتغيرات المبنية مسبقاً ضمن الـ PHP تكون مرئية في كل مكان ضمن البرنامج النصي.
·         الثوابت ، بمجرد الإعلان عنها ، تكون مرئية دائمًا ويمكن استخدامها داخل التوابع functions وخارجها.
·         المتغيرات العامة  global التي تم الإعلان عنها في البرنامج النصي تكون مرئية خلال هذا البرنامج النصي ، ولكن لا تكون مرئية داخل التوابع functions .
·         المتغيرات الموجودة داخل التوابع functions والتي تم الإعلان عنها بأنها متغيرات عامة global تشير إلى المتغيرات العامة التي لها نفس الاسم.
·         المتغيرات التي يتم إنشاؤها داخل التوابع  functions والمعلن عنها بأنها متغيرات ثابتة static تكون غير مرئية من خارج التوابع  ولكن يجب الحفاظ على قيمتها بين كل تنفيذ وآخر للتابع.
·         المتغيرات التي يتم إنشاؤها داخل التوابع هي متغيرات محلية local ضمن التوابع وتنقطع عن الوجود عند انتهاء هذه التوابع.
المصفوفات  $_GET , $_POST  وبعض المتغيرات الخاصة الأخرى والتي تعرف باسم  superglobals  يمكن رؤيتها في كل مكان داخل وخارج التوابع functions  .
وهذه قائمة كاملة بهذه المتغيرات superglobals   كما يلي:
·         $GLOBALS   :
وهي مصفوفة تحوي جميع المتغيرات العامة global  وهي تسمح لنا بالوصول إلى المتغيرات العامة الموجودة حتى داخل التوابع ، مثال :  $GLOBALS['myvariable'] .
·         $_SERVER   : وهي مصفوفة تحوي المتغيرات المتعلقة ببيئة المخدم.
·         $_GET   : وهي مصفوفة تحوي المتغيرات التي يتم تمريرها إلى البرنامج النصي عبر الطريقة  GET.
·         $_POST  : وهي مصفوفة تحوي المتغيرات التي يتم تمريرها إلى البرنامج النصي عبر الطريقة  POST.
·         $_COOKIE   : وهي مصفوفة تحوي المتغيرات المتعلقة بملفات تعريف الارتباط  cookie .
·         $_FILES   : وهي مصفوفة تحوي المتغيرات المتعلقة بتحميل الملفات .
·         $_ENV   : وهي مصفوفة تحوي متغيرات البيئة.
·         $_REQUEST  :
 وهي مصفوفة تحوي جميع المدخلات التي تتم عن طريق المستخدم بما في ذلك محتويات الإدخال وأيضاً $_GET  , $_POST , $_COOKIE   لكن لا تحوي $_FILES .
·         $_SESSION   : وهي مصفوفة تحوي متغيرات الجلسة session .

تاسعاً : فهم التعابير البرمجية (العمليات ، الأولويات) :


1-     استخدام العمليات operators :

Operators : هي الرموز التي يمكنك استخدامها لمعالجة القيم والمتغيرات عن طريق إجراء بعض العمليات عليها.
لقد ذكرنا سابقاً عاملين: عملية تعيين أو اسناد القيم  (=)  ، وعملية جمع السلاسل المحرفية معاً (.) .
بشكل عام ، يمكن للـ operators أن تأخذ وسيط أو اثنتين أو ثلاث ، على سبيل المثال ، تأخذ عملية إسناد القيم وسيطين هما موقع التخزين على الجانب الأيسر من الرمز = وما نريد تخزينه على الجانب الأيمن.

2-     العمليات الحسابية Arithmetic Operators :

-          الجمع :    رمزه (+)  وتكتب عبارة الجمع على الشكل :   $a + $b  .
-          الطرح :   رمزه (-)   وتكتب عبارة الطرح على الشكل :  $a - $b .
-          الضرب : رمزه (*)   وتكتب عبارة الضرب على الشكل : $a * $b .
-          القسمة :   رمزه (/)   وتكتب عبارة القسمة على الشكل :   $a / $b .
-          الباقي :   رمزه (%)  وتكتب عبارة الباقي على الشكل :   $a % $b .
وبكل عملية من العمليات السابقة يمكن تخزين النتيجة على الشكل التالي:
$result = $a + $b;
يمكن أيضًا استخدام رمز الطرح (-) للإشارة إلى الأرقام السالبة ، كما في هذا المثال:
$a = -1;
بالنسبة للعملية %  فهي عملية حساب باقي القسمة ، كما في المثال:
$a = 27;
$b = 10;
$result = $a%$b;
القيمة المخزنة في متغير النتيجة result هي الباقي عند قسمة 27 على 10 ، أي 7.
يجب ملاحظة أن العمليات الحسابية يتم تطبيقها عادة على الأعداد الصحيحة أو الحقيقية ، أما إذا قمنا بتطبيقها على السلسلة  string  سيحاول PHP تحويل هذه السلسلة إلى أرقام ويحاول إيجاد النتيجة ، و إذا كانت السلسلة تحتوي على الحرف e أو E  سيتم قراءتها على أنها تدوين علمي وتحويلها إلى عدد حقيقي ، وفي حال عدم وجود نتيجة ستكون النتيجة صفر.

3-     العمليات على السلاسل المحرفية  String Operators :

لقد رأينا سابقاً العملية (.) التي تستخدم لإضافة سلسلتين إلى بعضهما على الشكل التالي:
$a = "Bob's ";
$b = "Auto Parts";
$result = $a.$b;
يحتوي متغير النتيجة  result  الآن على السلسلة  "Bob's Auto Parts" .

4-     عمليات الإسناد  Assignment Operators :

لقد رأينا سابقاً العملية (=) التي تقوم بإسناد قيمة أو تعبير إلى أي متغير ، فمثلاُ التعبير : $totalqty= 0;
يعني أنه تم ضبط المتغير  $totalqty على الصفر.

5-     القيمة المرجعة من عملية الإسناد:

ليكن لدينا التعبير التالي:
$b = 6 + ($a = 5);
يعطي هذا السطر المتغير $b  القيمة 11 التي هي ناتج العمليات الموجودة بالطرف الأيمن ، أي قيمة التعبير الموجود بالطرف الأيمن ، و يمكن استخدام الأقواس لتوضيح الأولوية في أداء العمليات.

6-     عمليات الإسناد المدمجة:

بالإضافة إلى عملية الإسناد البسيطة يوجد مجموعة من عمليات الإسناد المدمجة التي تعطينا طريقة مختصر لتطبيق عملية ما على متغير و تخزين الناتج في هذا المتغير بنفس الوقت ، فمثلاً  هذا التعبير:   $a += 5;
يعادل التعبير التالي :   $a = $a + 5; 
فالعملية الجديدة هنا هي  =+
عمليات الإسناد المدمجة موجودة لكل من العمليات الحسابية والعمليات على السلاسل المحرفية على الشكل التالي:
         +=            $a += $b            $a = $a + $b
       -           = $a -= $b            $a = $a - $b
      *=            $a *= $b            $a = $a * $b
      /=            $a /= $b            $a = $a / $b
      %=          $a %= $b          $a = $a % $b
      .=            $a .= $b            $a = $a . $b

7-     عمليات الزيادة والنقصان:

عملية الزيادة هي  (++)  و عملية النقصان هي (- -) وهي مشابهة للعمليات (+ =) (- =) ، حيث تقوم بعملية الزيادة أو النقصان لمتغير ما و تخزن النتيجة بنفس المتغير وبنفس الوقت على الشكل التالي:
$a=4;
echo ++$a;

حيث يقوم السطر الثاني بزيادة المتغير $a بمقدار واحد و يخزن النتيجة بنفس المتغير و من ثم يطبع النتيجة الجديدة ، أي أصبح المتغير $a يحوي العدد 5 ونتيجة الطباعة هي 5.
لكن يجب الانتباه أن هذه العمليات (الزيادة أو النقصان ) يمكن أن تكتب قبل المتغير أو بعده ، و كل حالة تعطي نتيجة مختلفة ، فمثلاً لننظر إلى المثال التالي:
$a=4;
echo $a++;

 يقوم السطر الثاني هنا بطباعة القيمة الموجودة في المتغير $a وبعدها يقوم بزيادة هذا المتغير بمقدار واحد ويضع نتيجة الزيادة في نفس المتغير $a ، أي أصبح المتغير $a يحوي العدد 5 لكن نتيجة الطباعة هي 4.
إذا هناك فرق بين كتابة عملية الزيادة قبل أو بعد المتغير ، ونفس الكلام السابق ينطبق على عملية النقصان أيضاً.

8-     عملية الإرجاع Reference Operator :

عملية الإرجاع لها الرمز  (& ، علامة الضم) ، وتستخدم مع عملية الإسناد.
عادة عندما تتم عملية إسناد متغير إلى آخر ، يتم إجراء نسخة من المتغير الأول و تخزينها في مكان آخر في الذاكرة ، فمثلاً  عندما نكتب :     
$a = 5;
$b = $a;
يتم هنا إجراء نسخة ثانية من القيمة  $a  وتخزينها في  $b ، وبالتالي التغيير على قيمة $a لا يؤثر على قيمة $b .
يمكنك تجنب عمل مثل هذه النسخة باستخدام عملية الإرجاع على الشكل التالي:
$a = 5;
$b = &$a;
$a = 7; // $a and $b are now both 7

يمكن أن تكون المراجع صعبة بعض الشيء لكن تذكر أن المرجع يشبه الاسم المستعار ، في هذا المثال  يشير كل من $a و $b إلى نفس قطعة الذاكرة وبالتالي تغيير أحدهما يؤدي إلى تغيير الآخر.
يمكن إلغاء ما سبق  من خلال :  unset($a);
فهذه التعليمة البرمجية unset  لا تؤدي إلى تغيير قيمة $b    التي هي  7  ولكن فقط تقطع الرابط بين $a  و القيمة 7 المخزنة في الذاكرة.

9-     عمليات المقارنة:

تقوم عمليات المقارنة بمقارنة قيمتين وتعيد لنا النتيجة على شكل قيمة منطقية (true or false) اعتمادًا على نتيجة المقارنة.
·         عملية المساواة:
 لها الرمز (==) وتمكننا من اختبار ما إذا كانت هناك قيمتان متساويتان على الشكل التالي:
$a == $b
هنا تتم عملية مقارنة القيم المخزنة في $a و $b  ، والنتيجة التي سوف يتم إرجاعها إما True في حال تساوي القيم أو  false في حال عدم تساوي القيم.
يجب الانتباه إلى عدم الخلط بين عملية المساواة ( == )  و عملية الإسناد ( = ) لأن مثل هذه الأخطاء يكون من الصعب العثور عليها حتى في حال قمت بتشغيل مصحح الأخطاء.

·         عمليات المقارنة الأخرى:
                يدعم PHP أيضًا عددًا من عمليات المقارنة الأخرى وهي على الشكل التالي: .
-       

-          المساواة : رمزها (==)    وتكتب عبارة المساواة على الشكل :   $a == $b .
-          المطابقة : رمزها (===)  وتكتب عبارة المطابقة على الشكل :   $a == $b
         لا بد أن نلاحظ هنا أن نتيجة المطابقة لا تكون true  إلا إذا تحقق التساوي بالقيمة والنوع معاً.
   مثلاً :  نتيجة التعبير        0 ==  '0'  هي    True
        بينما نتيجة التعبير  0 === '0'  هي  false
-          عدم المساواة :  رمزها (!=) وتكتب عبارة عدم المساواة على الشكل : $a != $b .
-          عدم المطابقة : رمزها (!==) وتكتب عبارة عدم المطابقة على الشكل : $a !== $b .
-          عدم المساواة :  رمزها (<>) وتكتب عبارة عدم المساواة على الشكل : $a <> $b .
-          أقل من :  رمزها (<) وتكتب عبارة أقل من على الشكل : $a < $b .
-          أكبر من :  رمزها (>) وتكتب عبارة أكبر من على الشكل : $a > $b .
-          أقل من أو يساوي : رمزها (<=) وتكتب عبارة أقل من أو يساوي على الشكل : $a<= $b .
-          أكبر من أو يساوي : رمزها (>=) وتكتب عبارة أكبر من أو يساوي على الشكل : $a>=$b .

10-  العمليات المنطقية:

العمليات المنطقية تدمج نتائج الشروط المنطقية ، فمثلاً إذا كنا نريد معرفة الحالة التي تكون فيها قيمة المتغير  $a   بين 0 و 100  سنحتاج إلى اختبار الشرطين  $a> = 0    و   $a <= 100 ، باستخدام العملية المنطقية AND  والتي لها الرمز (&&)  كما يلي:
$a >= 0 && $a <=100

إذاً تدعم لغة  PHP  العمليات المنطقية , AND , OR , XOR  NOT على الشكل التالي:
-     

-          العملية NOT أي النفي :
       لها الرمز (!) وتكتب على الشكل : !$b وتكون النتيجة true  في حال كان المتغير  $b هو false   والعكس صحيح.
-          العملية AND  :
     لها الرمز (&&)  وتكتب على الشكل : $a && $b وتكون النتيجة true  في حال كان $a  و  $b  كلاهما true أما خلاف ذلك تكون النتيجة false .
-          العملية OR :
      لها الرمز (||)  وتكتب على الشكل : $a || $b وتكون النتيجة true  في حال كان $a  أو  $b أو كلاهما true أما خلاف ذلك تكون النتيجة false .
-          العملية and :
      لها الرمز (and)  وتكتب على الشكل : $a and $b وهي مشابهة للعملية (&&) لكن مع أولوية أقل.
-          العملية or :
      لها الرمز (or)  وتكتب على الشكل : $a or $b وهي مشابهة للعملية (||) لكن مع أولوية أقل.
-          العملية XOR :
      لها الرمز (xor)  وتكتب على الشكل : $a xor $b وتكون النتيجة true  في حال كان $a  أو  $b true أما إذا كان كلاهما  true أو كلاهما  false تكون النتيجة false .

11-  العمليات المختصة بالـ  bits :

تتعامل هذه العمليات مع العدد الصحيح على أنه سلسلة من البتات المستخدمة لتمثيله.
حيث تدعم لغة  PHP  العمليات التالية:
-          العملية AND الخاصة بالبتات وتسمى Bitwise AND :
 لها الرمز (&) وتكتب على الشكل : $a & $b حيث يتم تطبيق عملية AND منطقية على البتات في $a   و  $b .
-          العملية OR الخاصة بالبتات وتسمى Bitwise OR :
لها الرمز (|)  وتكتب على الشكل : $a | $b حيث يتم تطبيق عملية OR منطقية على البتات في $a   و  $b .
-          العملية NOT الخاصة بالبتات وتسمى Bitwise NOT :
لها الرمز (~)  وتكتب على الشكل : ~ $a   حيث يتم تطبيق عملية NOT منطقية على البتات في $a   .
-          العملية XOR الخاصة بالبتات وتسمى Bitwise XOR :
 لها الرمز (^) وتكتب على الشكل : $a ^ $b حيث يتم تطبيق عملية XOR منطقية على البتات في $a   و  $b .
-          عملية الإزاحة لليسار وتسمى  Left shift :
 لها الرمز (<<) وتكتب على الشكل : $a << $b وتعني إزاحة البتات في السلسلة   $a إلى اليسار بمقدار $b
-          عملية الإزاحة لليمين وتسمى  Right shift :
 لها الرمز (>>) وتكتب على الشكل : $a >> $b وتعني إزاحة البتات في السلسلة   $a إلى اليمين بمقدار $b

12-  العمليات الأخرى في PHP :

بالإضافة إلى العمليات التي رأيناها  ، يوجد عمليات أخرى هي:
·         الفاصلة :
رمزها  (,)  وهي تفصل بين الوسطاء التي تمرر للتوابع functions  وغيرها من قوائم العناصر التي تكون مكتوبة إلى جانب بعضها.
·         New , ->  :
 وتستخدم لإنشاء نسخة من class  وللوصول إلى العناصر داخل الـ class .

13-   العملية الثلاثية  (?:) :

 ولها الشكل التالي :
condition ? value if true : value if false
أي نكتب :
               شرط   ؟   قيمة إذا كانت النتيجة صحيحة  :   قيمة إذا كانت النتيجة خاطئة
مثال :
($grade >= 50 ? 'Passed' : 'Failed')

حيث يقوم هذا التعبير بتقييم درجات الطالب : فإذا كانت فوق 50 فهذا يعني نجاح الطالب وإلا فهو راسب.

14-   عملية قمع الخطأ :

لها الرمز  (@) حيث يمكن وضعها أمام أي تعبير لديه قيمة أو سوف يولد قيمة على الشكل التالي:
$a = @(57/0);
في هذا المثال لو لم نضع رمز قمع الخطأ لكان البرنامج سيعطينا تحذير من القسمة على الصفر بينما مع وجود الرمز يتم قمع الخطأ . وهنا لا بد من كتابة بعض التعليمات البرمجية لمعالجة مثل هذه الأخطاء.

15-   عملية التنفيذ :

لها الرمز (``)  ويسمى هذا الرمز  backticks  ، حيث يحاول PHP تنفيذ كل التعابير الموجودة بين backticks  كأمر من أوامر server’s command line  أي كأمر في سطر أوامر المخدم وتكون نتيجة التعابير هي نتيجة هذا الأمر.
على سبيل المثال ، على مخدم ويندوز ، يمكنك أن نكتب :
$out = `dir c:`;
echo '<pre>'.$out.'</pre>';

هنا في هذا الكود نحصل على قائمة الملفات الموجودة في السواقة  c   ونخزنها في المتغير  $out   و بعد ذلك نقوم بطباعة هذه القائمة على المتصفح ، أويمكن التعامل معها بأي طريقة أخرى.

16-  عمليات المصفوفات :

هناك العديد من العمليات على المصفوفات ، ونستطيع من خلال الرمز ([]) الوصول إلى عناصر المصفوفة.
سنذكر الآن بعضاً من هذه العمليات:
-        

-          عملية الاتحاد أو الدمج:
      لها الرمز (+) وتكتب على الشكل : $a + $b حيث $a و $b عبارة عن مصفوفات وتقوم عملية الدمج بدمج المصفوفتين في مصفوفة واحدة.
-          عملية المساواة :
      لها الرمز (==) وتكتب على الشكل : $a == $b حيث $a و $b عبارة عن مصفوفات وتكون النتيجة true  في حال كان للمصفوفتين نفس القيم.
-          عملية المطابقة :
     لها الرمز (===) وتكتب على الشكل : $a === $b حيث $a و $b عبارة عن مصفوفات وتكون النتيجة true  في حال كان للمصفوفتين نفس القيم و بنفس الترتيب ومن نفس النمط.
-          عملية عدم المساواة :
      لها الرمز (!=) وتكتب على الشكل : $a != $b حيث $a و $b عبارة عن مصفوفات وتكون النتيجة true  في حال كانت المصفوفتين غير متساويتين.
-          عملية عدم المساواة :
     لها الرمز (<>) وتكتب على الشكل : $a <>  $b حيث $a و $b عبارة عن مصفوفات وتكون النتيجة true  في حال كانت المصفوفتين غير متساويتين.
-          عملية عدم المطابقة :
     لها الرمز (!==) وتكتب على الشكل : $a !== $b حيث $a و $b عبارة عن مصفوفات وتكون النتيجة true  في حال كانت المصفوفتين غير متطابقتين.

17-  The Type Operator :

عملية النمط  Type Operator  تكتب على الشكل التالي : instanceof  وتستخدم في البرمجة الغرضية التوجه حيث تسمح لنا بالتحقق مما إذا كان كائن ما  object  هو غرض  أو نسخة من class محدد ، وذلك على الشكل التالي:
class sampleClass{};
$myObject = new sampleClass();
if ($myObject instanceof sampleClass)
echo "myObject is an instance of sampleClass";


تطبيق عملي:

 الآن بعد أن عرفنا كيفية استخدام العمليات في لغة PHP  يمكننا تطبيق ذلك على نموذج طلب بوب ، لذا لنفرض أننا نريد تحديد الإجماليات والضرائب في النموذج ، للقيام بذلك ، لنضيف الكود التالي إلى أسفل نص PHP

$totalqty = 0;
$totalqty = $tireqty + $oilqty + $sparkqty;
echo "<p>Items ordered: ".$totalqty."<br />";
$totalamount = 0.00;
define('TIREPRICE', 100);
define('OILPRICE', 10);
define('SPARKPRICE', 4);
$totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE;
echo "Subtotal: $".number_format($totalamount,2)."<br />";
$taxrate = 0.10; // local sales tax is 10%
$totalamount = $totalamount * (1 + $taxrate);
echo "Total including tax: $".number_format($totalamount,2)."</p>";

ونتيجة التنفيذ ستكون على الشكل التالي:



لاحظ أننا استخدمنا العديد من العوامل مثل الجمع (+) والضرب (*) و النقطة  (.)لإعداد النتيجة إلى المتصفح.
كما أننا استخدمنا الدالة number_format ()  لتنسيق النتائج بحيث يكون لدينا عددين فقط بعد الفاصلة هذه الدالة موجودة في المكتبة Math  المبنية مسبقاً ضمن الـ  PHP .
إذا أعدنا النظر في العمليات الحسابية نلاحظ أن عمليات الضرب تتم قبل الإضافات وهذا بسبب وجود أولوية في العمليات الحسابية.

18-  فهم الأولويات و الترابط:

بشكل عام ، يكون للعمليات في الـ PHP  أولوية محددة أو ترتيب محدد تتم فيه ، كما أن لها ترابط محدد وهو ترتيب العمليات التي لها الأولوية نفسها ، وعادةً ما يتم هذا الترتيب من اليسار إلى اليمين (left) أو من اليمين إلى اليسار (right) أو بدون وجود صلة  n/a  .
فيما يلي جدول يبين الأولويات والترابط بين العمليات في الـ PHP  ، حيث توجد العمليات ذات الأولوية الأقل في الأعلى وتزداد الأولوية كلما انتقلنا إلى أسفل الجدول.

العملية
الترابط
,
left
Or
left
Xor
left
And
Left
Print
Right
= += -= *= /= .= %= &= |= ^= ~= <<= >>=
Left
? :
Left
||
Left
&&
Left
|
Left
^
Left
&
Left
== != === !==
n/a 
< <= > >=
n/a 
<< >>
Left
+ - .
Left
* / %
Left
!
Right
Instanceof
n/a 
~ (int)(float)(string)(array)(object)(bool) @
Right
++ --
n/a 
[]
Right
clone new
n/a 
()
n/a 

في الجدول السابق لم نتحدث عن أعلى أولوية والتي هي الأقواس حيث تمتلك التعابير الموجودة ضمن الأقواس أعلى أولوية ، وبهذه الطريقة يمكننا التحكم بقواعد الأولوية السابقة عند الحاجة إلى ذلك.
في المثال السابق ليكن التعبير التالي:
$totalamount = $totalamount * (1 + $taxrate);
            لو كتبنا بدلاً عنه:
          $totalamount = $totalamount * 1 + $taxrate;

لكانت النتيجة مختلفة لأن عملية الضرب لها أولوية على الجمع ، أما باستخدام الأقواس استطعنا فرض أولوية لعملية الإضافة.
يمكننا استخدام أكبر عدد ممكن من مجموعات الأقواس كما نريد في التعبير ، و الأقواس الأعمق لها الأولوية بالتنفيذ.
لاحظ في الجدول السابق وجود العملية print  وهي مكافئة للعملية  echo   فكلاهما يولد إخراج على المتصفح ، لذا يمكننا استخدام أي منهما.
تعتبر print أو echo  بالأساس functions حيث يمكن استدعاء كليهما كتابع مع وجود وسطاء لهما بين قوسين , ويمكن أيضًا معاملة كلاهما كمعامل بوضع السلسلة التي نريد طباعتها بكل بساطة بعد كلمة print  أو  echo .
عند استدعاء الطباعة print  كدالة تعطينا القيمة (1) كنتيجة لها وهذا قد يفيدنا في بعض الأحيان إذا كنا نريد إنشاء إخراج داخل تعبير أكثر تعقيدًا.

وسنتابع باقي النقاط في الجزء الثاني من هذه المحاضرة.


مروان المعلم / ماجستير بالاقتصاد المالي والنقدي
كاتب المقالة
كاتب ومحرر اخبار اعمل في موقع آفاق .

جديد قسم : استخدام لغة PHP

إرسال تعليق