أسود PHP | الأساسيات

بسم الله الرحمن الرحيم

والصلاة والسلام علي أشرف المرسلين سيدنا محمد عليه أفضل الصلاة والسلام وأحمد الله جل وعلا الذي وفقني لهذا العمل

يتناول هذا الكتاب شرح لأساسيات لغة php

يجب أن تكون لديك خلفية بسيطة عن أساسيات css & html قبل متابعة هذا الكتاب

لقراءة كتاب php oop

الهدف من أنشاء هذا الكتاب هو أنشاء مرجع عربي يشرح أخر أصدار للغة php وأيضا يستطيع كلا من المبرمج المحترف والمبتدئ أن يعتمد علي هذا الكتاب في تعلم الاساسيات وبناء المشاريع المتقدمة أسال الله العظيم أن يجعل هذا الكتاب نافعا لكل قارئ حيث أنه تم الاقتصار علي ذكر الأمثلة العملية ببساطه بعيدا عن الكلام النظري عن أبي هريرة رضي الله عنه أن النبي صلى الله عليه وسلم قال: «لا يَشْكُرُ اللَّهَ مَنْ لا يَشْكُرُ النَّاسَ» أشكر أسامة الزيرو حيث أستطعت الوصول الي مستوي متقدم في البرمجة بفضله وجميع المصادر الأخري التي أقتبست منها


php-image-placeholder


التعامل مع الأستمارة أو الفورم في لغة php

من أهم مميزات لغة php طريقة تعاملها مع أستمارات html

مثال #1 فورم بسيط

  <form action="action.php" method="post">
														<p>أسمك: <input type="text" name="name" /></p>
														<p>عمرك: <input type="text" name="age" /></p>
														<p><input type="submit" /></p>
														</form>
								

ليس هناك أي شيء خاص بخصوص هذه الفورم فهو بسيط وعادي جدا فهو فورم مكتوب بلغه html وليس هناك أي وسوم من أي نوع عندما يقوم المستخدم بملء الاستمارة والضغط علي زر أرسال submit , الملف action.php يتم أستدعاءة وفي هذا الملف سوف يتم كتابة شيء كهذا

مرحبا <?php echo htmlspecialchars($_POST['name']); ?>.
عمرك هو <?php echo (int)$_POST['age']; ?> سنة 

خرج طباعة هذا المثال سوف يكون مثل هذا

													.مرحبا , عمرك هو 22 سنة 
								



التعليقات في لغة php

حسنا ، نفترض لدينا كود برمجي بلغة بي اتش بي او اي لغة برمجة اخرى واردنا التعديل فيه ، في الواقع سيصعب علينا ذلك في حالة عدم وجود تعليقات وارشادات داخل هذا الكود الااننا سنحير ونحن نبحث عن السطر المراد تعديله في هذا الكود، لكن إذا وجدت تعليقات وارشادات بداخل هذا الكود فسيسهل الأمر علينا قليلا إذ اننا سنكتفي بقراءة التعليقات المختصرة وهذا افضل من قراءة اسطر طويلة من كود معني . ومن هنا نعرف التعليق في لغتنا المدروسة على انه عبارة عن نص نكتب فيه شيئا له دلالة على اسطر من كود معني حتى يسهل الرجوع اليها، وهذا النص ليتم ترجمته لاي صيغة اخرى لن يظهر الكود عند فتح الكود اي source الصفحة. ولكتابة تعليق في بي اتش بي نستعمل هذا الرمز // نكتب التعليق المراد بعد هذا الرمز شريطة الا يتجاوز التعليق سطرا واحدا فقط. # أو أستخدام رمز او نستعمل هذا الرمز في حالة كان لدينا تعليق طويل يتكون من عدة اسطر ، نشرح فيها امر ما مثال بالتفصيل: /* التعليق المراد اكتب التعليق الذي تريده بعدد االسطر التي تريد و لا تنسى ان تغلق الرمز دلالة على انتهاء التعليق هكذا *

مثال #1

 <?php 
// السلام عليكم أنا تعليق سطري  
echo "مرحبا , أسمي هو محمود";
#وهذا ايضا تعليق علي سطر واحد
print " أحب العمل بلغة php" ;
/* تعليق متعدد الأسطر
* سطر واحد
* سطر رقم أثنين
*/
echo "لقد تعلمت التعليقات في لغة php ";

خرج طباعة هذا المثال سوف يكون مثل هذا

											مرحبا , أسمي هو محمود أحب العمل بلغة phpلقد تعلمت التعليقات في لغة php
										

تمرين يمكنك أستخدام الأمر التالي لعمل مسافة بين الكلمات المطبوعة بالوسم

											echo '< br>';
										

خرج طباعة هذا التمرين سوف يكون مثل هذا

											مرحبا , أسمي هو محمود
											أحب العمل بلغة php
											لقد تعلمت التعليقات في لغة php
										


المتغيرات والثوابت في php

من العناصر الرئيسية في أي لغة ووظيفتها تخزين المعلومات في الذاكرة بصورة مؤقتة ويتكون المتغير من عنصرين أساسين هما - الاسم : وهو يدل على اسم معني نختاره نحن لـ متغير نريد استعماله. - والقيمة: وهي المعلومة التي نريد ان يحملها المتغير والتي تتحول. و يجب ان ننسى ان المتغيرات التي ننشيء يجب ان تبتدأ بعلامة الدولار : $ وكمسلمة : اي اسم يبتدأ بعلامة الدولار $ هو عبارة عن متغير.

الثوابت ومن معناها ما هي كلمة محجوزة في اللغه وظيفتها تخزين قيمة واحدة فقط في الذاكرة لا يمكن أن تتغير const

 <?php 
const FIRST_NAME= "اسمي هو محمود ";  
echo FIRST_NAME;

خرج طباعة هذا المثال سوف يكون مثل هذا

									اسمي هو محمود
								

 <?php 
const FIRST_NAME= "اسمي هو محمود ";  
const FIRST_NAME= "اسمي هو أبراهيم ";  
#عند تغيير قيمة الثابت سوف يحدث خطأ  
echo FIRST_NAME;

خرج طباعة هذا المثال سوف يكون مثل هذا

									Notice: Constant FIRST_NAME already defined in on line 3
									اسمي هو محمود
								

القصد هنا هو أنواع البيانات التي يمكن تخزينها في المتغيرات

string int float bool null array
هذا النوع من المتغيرات خاص بالنصوص والقيمة بهذا النوع تكون دائمة بين علامتي تنصيص مزدوجة او فردية الارقام الطبيعية أو الصحيحة وهي الارقام التي تحتوي على الفاصلة العشرية هو متغير منطقي يحتمل اكثر من قيمتين: false or true قيمة فارغة يعني عندما ننشىء متغير ونعطيه اي قيمة فيكون هذا المتغير فارغ راجعها في قسم المصفوفات

ملاحظات مهمة :

هناك قواعد عند كتابة المتغيرات يجب ان يتم مراعتها

1 -جميع اسماء المتغيرات لا يجب ان تبتدأ برقم بعد علامة الدولار مباشرة ، مسموح يحتوي الاسم على رقم لكن الغير مسموح به هو ان يكون هذا الرقم هو الأول في الأسم

2-اسماء المتغيرات حساسة لوضعية الأحرف فالمتغير $name ليس هو المتغير $Name

3-امكانية استخدام العلامة : _ علامة underscore في بداية او داخل اسم المتغير لكن يرجي ملاحظة انه هناك متغيرات محجوزة في اللغه لا يمكن أستخدامهاو تسمي بالسوبر جلوبال super global variables ويحتوي الجدول التالي عليها

$GLOBALS $_SERVER $_GET $_POST $_FILES $_REQUEST $_SESSION $_ENV $_COOKIE $php_errormsg $http_response_header $argc $argv
المصفوفة An associative array هي مصفوفة مفتاحية أو تجميعية تحتوي علي مرجعية لكل المتغيرات التي قد تم تعريفها في المنظار العام للأسكربت . وأسماء المتغيرات هي مفتاح هذه المصفوفة. المدخلات في هذه المصفوفة تم أنشائها بواسطة الخادم وليس هناك أي ضمانه علي انه اي خادم ويب سوف يزودك بهذه المعلومات سوف تجد المزيد من المعلومات بخصوص هذا في التوثيق الرسمي ل CGI/1.1 specification , هي مصفوفة تحتوي علي معلومات كا الهيدرز والمسارات واماكن الاسكربتات HTTP GET variables HTTP POST variables HTTP File Upload variables HTTP Request variables Session variables Environment variables HTTP Cookies The previous error message HTTP response headers The number of arguments passed to script Array of arguments passed to script

مثال المتغيرات #1

 <?php 
$name ='yassine';  
$age = '22 سنة';
echo $name,$age;
$age = '12 سنة';
echo $age , $name;
الخرج الان سوف يكون 12 سنة#

خرج طباعة هذا المثال سوف يكون مثل هذا

											22 سنة12 سنةyassine
										

تمرين المتغيرات أكتب متغيرات تحمل القيم التالية

											name,age,city,country
										

ثم قم بأستخدام هذه المتغيرات لطباعه الجملة التالية

												.أسمي هو محمود عمري هو 27 عام أعيش في القاهرة وأنا من مصر 
											

الكود المستخدم في هذا التمرين هو

 <?php 
$name ='mahmoud';  
$age = '27 عام';
$country = 'مصر';
$city = 'القاهرة';
print " .أسمي هو $name عمري هو $age أعيش في $city و أنا من $country ";
# ملاحظة : انة تم وضع الكود بين علامتي تنصيص وذلك حتي تستطيع كتابه المتغيرات بداخل الكود

جرب أستخدام علامة التنصيص الأحادية ولنري ماذا سوف يحدث عند الطباعة

													.أسمي هو $name عمري هو $age أعيش في $city و أنا من $country 
												

سؤال : لكن لماذا حدث هذا؟

بكل بساطة علامتي التنصيص الثنائية تستخدم فيما يسمي بالهروب من html


العمليات الحسابية الأساسية في لغة php

*:الضرب

/:القسمة

-:الطرح

+:الجمع

%:باقي القسمة

مثال #1

 <?php 
$number_1 = 10;  
$number_2 = 5;
// عملية الجمع
$sum = $number_1 + $number_2;
// عملية الطرح
$subtraction = $number_1 - $number_2;
// عملية الضرب
$multiplication = $number_1 * $number_2 ;
// عملية القسمة
$division = $number_1 / $number_2 ;
// عملية باقي القسمة
$rest_division = $number_1 % $number_2 ;
// <'/br'> من وسوم html وتستخدم للطباعة
echo "$sum , $subtraction , $multiplication , $division , $rest_division";

خرج طباعة هذا المثال سوف يكون مثل هذا

											15 , 5 , 50 , 2 , 0
										

مقتطفات

1-الفرق بين print , echo

الفرق الجوهري بين print و echo هو ان echo هي الأكثر أستعمالا وذلك لانها أسرع في الطباعه بحسب التوثيق الرسمي للغة وأيضا يمكنك بأستخدام echo طباعه العديد من القيم وهذا هو مثال للتوضيح

مثال لتوضيح الفرق بين print و echo

 <?php 
echo " اسمي هو محمد " , " أعمل كمبرمج php" ;  
print " اسمي هو محمد " , " أعمل كمبرمج php" ;
// print سوف تحدث خطأ بينما echo سوف تعمل

خرج طباعة هذا المثال سوف يكون مثل هذا

											Parse error: syntax error, unexpected  ',' error  on line 3
										

أذا قمت بتعليق الكود الخاص ب print سوف يكون الخرج الخاص بك كالتالي

												اسمي هو محمد أعمل كمبرمج php
											

2-عامل الربط - (concatenation)

يمكنك أستخدام عامل الربط للربط بين كلا من نص ونص متغير وأخر

مثال للتوضيح عامل الربط #1

 <?php 
echo "أسمي هو" . "أبراهيم" . "أعمل كمحساب";


خرج طباعة هذا المثال سوف يكون مثل هذا

											أسمي هوأبراهيمأعمل كمحساب
										

مثال للتوضيح عامل الربط #2

 <?php 
$name="أبراهيم"; $job="محاسب";
$job="محاسب";
echo "أسمي هو" . " " . $name ." " . "أعمل ك" . $job ." ";

خرج طباعة هذا المثال سوف يكون

											أسمي هو أبراهيم أعمل كمحاسب
										

الشروط

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

				(نكتب الشرط الذي نريده)if
				{
				هنا نكتب الأمر الذي نريد تحققة في حالة كان الشرط صحيحا
				}
				

(if)مثال#1أستخدم العبارة

 <?php 
$length = 175; 
if($length = 175){ 
print "طولك هو $length سم ";
}
//قم بطباعه العبارة التالية 175 أذا كان الطول هو

خرج طباعة هذا المثال سوف يكون مثل هذا

											طولك هو 175 سم
										
								كما نلاحظ جميعا بانه وضعنا شرط وقلنا فيه إذا كان المتغير length  يساوي 175
								فاطبع الجملة : طولك هو 
								وكما نلاحظ  ملاحظة اخرى بالنسبة للرموز التي نضعها داخل الشرط وهي:
								== : وهذا الرمز ليس كالرمز "=" واحدة ، هنا "==" مرتين ، ونعني بهذا "إذا وافق الشرط كدا..."
								> :
								الرمز اصغر قطعا من ..

								< :
								الرمز اكبر قطعا من ...

								>= :
								اصغر من او يساوي..

								<=:
								اكبر من او يساوي..

								!= :
								نفي يوافق او  لا يوافق

								لذا يرجى الانتباه في وضع الرموز ومعانيها.
							

(if else ) مثال#1أستخدم العبارة

هنا نأتي لشكل اخر من اشكال كتابة الشرط ، ففي الصيغة السابقة ربطنا شرط واحد بامر واحد. لكن ماذا لو لم يتحقق الشرط في المثال السابق ؟ الذي كان سيقع ببساطة انه لن يظهر اي شيء وفي هذه الحالة لن يفهم اي شيء انه اصلا لن يعرف الشخص الزائر هل كان هنالك شرط في الأساس أم لا وعليه ففي هذا الشكل سنرى كيف نضيف امر ثاني نربطه في حالة لم يتحقق الشرط. وطريقة كتابة هذه الصيغة هي (الشرط)if } الأمر المرتبط بتحقق الشرط { else } الأمر المرتبط بعدم تحقق الشرط {

 <?php 
$length = 179; 
if($length >= 175){ 
print "طولك هو $length سم ";
}else{
print "طولك غير صحيح";
}
//اذا كان طولك أكبر من أو يساوي 179 والأ أطبع طولك غير صحيح

خرج طباعة هذا المثال سوف يكون مثل هذا

										طولك غير صحيح
									

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

 <?php 
$length = 79; 
if($length <= 78){ 
print "مقاسك مناسب ";
}elseif($length == 79){
print "طولك غير صحيح";
}
else{
print "مقاس مناسب";
}

خرج طباعة هذا المثال سوف يكون مثل هذا

												طولك غير صحيح
											

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

شكل الشروط المتعددة

يمكننا ان نضع اكثر من شرط في امر واحد لكن باستعمال رموز جديدة وهي: "AND : وتعني "و" ولها رمز اخر وهو && " "OR : وتعني "او" لها ايضا رمز اخر || " "نأخد مثال لهذا الشكل حتى نفهم اكثر "

 <?php 
$name='محمد'; $age=99;  
$age=99;  
if($name == 'محمد' && $age==99 ){ 
echo "true";
}else{
echo "false";
}

خرج طباعة هذا المثال سوف يكون مثل هذا

															true
														

وهنا بما ان كل الشروط متحققه فان الأمر المرتبط بهما سوف يتحقق اي ماسنحصل عليه هنا هو الكلمة : true

مثال أخر

 <?php 
$name='محمد'; $age=99;  
$age=99;  
if($name == 'محمد' OR $age==99 ){ 
echo "true";
}else{
echo "false";
}

خرج طباعة هذا المثال سوف يكون مثل هذا

																	true
																

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

(switch)مثال#1أستخدم العبارة

صيغة اخرى لوضع الشروط : الأمر switch يعد الأمر او الدالة switch مثل الأمر if و else لكن هذا الأمر اكثر مرونة . وسنأخذ مثال لطريقة استخدامه.

 <?php 
$age = 99; 
switch($age){//نحدد المتغير الذي نريد ان نتعامل معه 
case 10://هنا نقول في حالة ما أذا كان المتغير المتعامل معه يساوي10
echo "أنت طفل ";
break;
case 25://هنا نقول في حالة ما أذا كان المتغير المتعامل معه يساوي25
echo "أنت رجل ";
break;
case 99://هنا نقول في حالة ما أذا كان المتغير المتعامل معه يساوي99
echo "أنت رجل مسن";
break;
case 130://هنا نقول في حالة ما أذا كان المتغير المتعامل معه يساوي130
echo "أنت رجل مسن جدا جدا";
break;
default:
echo "نعتذر ليس لدينا اي جمل تناسب عمرك ";
}

خرج طباعة هذا المثال سوف يكون مثل هذا

																				أنت رجل مسن
																			
																	كما نلاحظ الأمر بسيط حيث نقوم بوضع احتمالات التي ممكن تقع ونربط كل احتمال بامر معني.
																	وهنا الأحتمال الصحيح هو case 99:
																	وعليه فالنتيجة كما هو متوقع ستكون : أنت رجل مسن
																	 الأمر default:
																	هو الأمر الذي يقع في حالة لم يتحقق اي احتمال يعني لو غيرت مثال قيمة المتغير age ووضعنا قيمة غير موجودة في الأحتمالات مثال :
																	$age=10;
																	فالنتيجة ستكون :
																	نعتذر ليس لدينا اي جمل تناسب عمرك 
																	اما بالنسبة للأمر break;
																	فهو مهم جدا حيث تكمن وظيفته في الخروج من الدالة switch في حالة تحقق الأحتمال، دون ان يتابع قرأت باقي الأحتماالات .
																	ولنتحقق من الأمر سوف نعدل في المثال الأخير ونضع فيه احتمال 130 الرقم 99 كذلك
																	سوف يتحقق الأحتمال 99 الأول ولن يتحقق الثاني وذلك بسبب الأمر break الذي خرج من الدالة ولم يتابع القراءة.
																	لكن ماذا لو حذفنا الأمر break المرتبط بالأحتمال 99 الأول ؟؟
																	سوف يتم متابعة القرأة وسنحصل على الأمر المرتبط بلأحتمال الأول 99 وايضا الأمر المرتبط بالأحتمال الثاني 99.
																	
												

(match) مثال#1أستخدم العبارة

هي دالة شرطية شبيهة بدالة switch تستخدم للتحقق من أن القيم المسندة في شرط الدالة تساوي القيم الأخري

 <?php 
$food="cake"; 
$return_value = match($food){ 
'apple' => 'This food is an apple', 'bar' => 'This food is a bar', 'cake' => 'This food is a cake', };
var_dump($return_value);

خرج طباعة هذا المثال سوف يكون مثل هذا

																	string(19) "This food is a cake"

															


الحلقات loops

while

for

foreach

مثال الحلقة while #1

تعتبر الحلقة while من أسهل الحلقات في لغة php يمكن تلخصيها بمثال بسيط أذا أردنا أن نطبع الجملة : السلام عليكم ورحمه الله وبركاته 100 مرة فبأستخدام الحلقة while يمكن تنفيذ ذلك بكتابة جملة واحده وبدونها سوف نكتب جملة الطباعه 100 مرة

 <?php 
$alsamalekoum=1; 
while($alsamalekoum <= 100){  
$alsamalekoum++;  
echo "السلام عليكم";}

خرج طباعة هذا المثال سوف يكون مثل هذا

											السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم
											السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم
											السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم
											السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم
											السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم 
											السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم 
											السلام عليكم السلام عليكم السلام عليكم السلام عليكم 
											السلام عليكم السلام عليكم السلام عليكم السلام عليكم
											السلام عليكم السلام عليكم السلام عليكم السلام عليكم
											السلام عليكم السلام عليكم السلام عليكم السلام
											عليكم السلام عليكم السلام عليكم السلام عليكم
											السلام عليكم السلام عليكم السلام عليكم السلام
											عليكم السلام عليكم السلام عليكم السلام عليكم
											السلام عليكم السلام عليكم السلام عليكم السلام
											عليكم السلام عليكم السلام عليكم السلام عليكم 
											السلام عليكم السلام عليكم السلام عليكم السلام
											عليكم السلام عليكم السلام عليكم السلام عليكم
										

ولنبدأ بكفية عمل حلقة تكرار باستخدام الدالة while السهلة. جاء في تعريفنا للحلقات بانها صيغة لعمل تكرار لتعليمات معينة نحددها نحن، وهذا يعني ان هذا التكرار سيستمر حتى بعد الوصول الى اخر تعليمة ثم يبدأ من جديد التكرار بدون توقف حتى النهاية ثم يعود للبداية وهكذا .. التكرار مستمر ولهذا فنحن بحاجة ماسة الى شرط يوقف هذا التكرار ويجعلنا نتحكم فيه هذا الشرط يتم بواسط الدالة while صيغة كتابه إذا حاولنا تطبيق هذا الكود سنحصل على الجملة :"السلام عليكم" ، مائة مرة وبدون اي عناء وكشرح للمثال ، فاول شيء بدأنا به هو وضع متغير وإعطائه قيمة 1 وهي قيمة البداية التي نريد ان يبدا منها التكرار، ثم بعد ذلك استعملنا دالتنا المدروسة وقلنا مادم الشرط لم يتغير اصغر من او يساوي 100 فاالمطلوب هو إظهار الجملة: السلام عليكم ومنا اننا نريد ان تتكرر هذة العملية فقد وضعنا ان المتغير يساوي نفسه زائد واحد حتى نضمن ان قيمة المتغير في تصاعد اي تتغير وهذا سيجعل الكومبيوتر يعود للقرءاة من بداية الحلقة ولن يخرج من الحلقة الا بعد إختلال الشرط يعني حتي تصبح قيمة المتغير فوق 100 اظن ان المسألة اصبحت واضحة.

مثال الحلقة for#1

لا يوجد فرق بين الحلقه while و for فالنتيجة واحدة

 <?php 
for($alsamalekoum=1; $alsamalekoum <= 100; $alsamalekoum++ ){  
echo "السلام عليكم";}

خرج طباعة هذا المثال سوف يكون مثل هذا

														السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم
														السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم
														السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم
														السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم
														السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم 
														السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم السلام عليكم 
														السلام عليكم السلام عليكم السلام عليكم السلام عليكم 
														السلام عليكم السلام عليكم السلام عليكم السلام عليكم
														السلام عليكم السلام عليكم السلام عليكم السلام عليكم
														السلام عليكم السلام عليكم السلام عليكم السلام
														عليكم السلام عليكم السلام عليكم السلام عليكم
														السلام عليكم السلام عليكم السلام عليكم السلام
														عليكم السلام عليكم السلام عليكم السلام عليكم
														السلام عليكم السلام عليكم السلام عليكم السلام
														عليكم السلام عليكم السلام عليكم السلام عليكم 
														السلام عليكم السلام عليكم السلام عليكم السلام
														عليكم السلام عليكم السلام عليكم السلام عليكم
													

مثال الحلقة foreach #1

تستخدم الحلقة foreach لعبور المصفوفات

 <?php 
$colors = array('الأحمر', 'الأزرق', 'الأخضر', 'الاصفر');

foreach ($colors as $color) {
}
echo " ?\n $color :هل تحب اللون";

خرج طباعة هذا المثال سوف يكون مثل هذا

																						? الأحمر :هل تحب اللون ? الأزرق :هل تحب اللون ? الأخضر :هل تحب اللون ? الاصفر :هل تحب اللون
																					

الدوال المعرفة مسبقا في لغه php

هي مجموعه من الدوال المجهزة مسبقا في لغة php وظيفتها - ارسال ملفات الى السيرفر - انشاء صور - ارسال رسالة الى البريد الألكتروني - الرسم والكتابة - تعويض محتوى بمحتوى وكلمة بكلمة... - تشفير ارقام سرية - اظهار الوقت والتاريخ - اعطاء معلومات عن الزائر - مسح او الغاء اجراءات و العديد من الوظائف الأخري

سوف يتم الاقتصار علي ذكر بعضها حيث انها كثيرة جدا و يمكنك مراجعه دليل php الرسمي المرفق مع هذا الكتاب

strlen STR_REPLACE STR_SHUFFLE STRTOUPPER STRTOLOWER date()
بواسطة هذة الدالة نستطيع معرفة طول - واقصد هنا عدد - الحروف او الأرقام المكتوبة في جملة او نص ما. واضح من اسمها انها تقوم بتعويض كلمة بكلمة او حرف بحرف.. دالة ظريفة لعمل خلط وتغير الأماكن الحرف بشكل عشوائي ، حيث كل مرة سنعمل فيها تحديث للصفحة سنحصل على تشكيل جديد للحروف. وظيفة هذه الدالة تتجلى في التحكم في حالة الأحرف ، حيث انها تجعل الحروف كبيرة. وظيفة هذه الدالة تتجلى في التحكم في حالة الأحرف ، حيث انها تجعل الحروف صغيرة. الوقت والتاريخ الموجود في الجهاز

مثال #1

 <?php 
$sentence="السلام عليكم ورحمه الله وبركاته";  
$length=strlen($sentence);
echo " عدد الأحرف في هذه الجملة $sentence هو : $length ";

خرج طباعة هذا المثال سوف يكون مثل هذا

											عدد الأحرف في هذه الجملة السلام عليكم ورحمه الله وبركاته هو : 58
										

مثال #2

 <?php 
$sentence=STR_REPLACE('مساء الخير' , 'صباح الخير' , 'مساء الخير أستاذ محمد ' );
echo $sentence;

خرج طباعة هذا المثال سوف يكون مثل هذا

										صباح الخير أستاذ محمد
										

مثال #3

 <?php 
$sentence="Iam a php programmer"; 
$new=STR_SHUFFLE($sentence);
echo $new;

خرج طباعة هذا المثال سوف يكون مثل هذا

															h pmeaprgmmr I aropa
														

مثال #4

 <?php 
$sentence="this is an upper letters";  
$letters=STRTOUPPER($sentence);
echo $letters;

خرج طباعة هذا المثال سوف يكون مثل هذا

																	THIS IS AN UPPER LETTERS
										

مثال #5

 <?php 
$sentence="THIS IS AN UPPER LETTERS AND WILL BE LOWER ";  
$NEW=STRTOLOWER($sentence);
echo $NEW;

خرج طباعة هذا المثال سوف يكون مثل هذا

										this is an upper letters and will be lower
										

مثال #6

 <?php 
$hour=date('H');  
$minutes=date('i');  
$day=date('d');  
$month=date('m');  
$year=date('y');  
echo "الوقت و التاريخ الأن هو : $hour : $minutes] [ $day/$month/$year]";

خرج طباعة هذا المثال سوف يكون مثل هذا

										الوقت و التاريخ الأن هو : [16 : 26] [ 23/12/21]
										


المصفوفات في لغة php

مثال arrays Associative

لا شك انكم مازلتم تتذكرون انه سبق لنا وأن مررنا باسم مصفوفة في دروسنا السابقة وقلنا على ان المصفوفة array هي عبارة عن متغير ، وفعلا هي كذلك لكن متغير اكثر تشعبية، يحتوي على مجموعة من العناصر لها قيم معينة. كيف؟؟ دعونا نضرب مثال بسيطا لنفهم معنى المصفوفة. وسنشبه المصفوفة هنا بحافلة بها 30 مقعدا في كل مقعد يجلس شخص معني إذن: الحافلة هي عبارة عن مصفوفة والثلاثين مقعدا هم عناصر المصفوفة حيث ان المقاعد تنتمي للحافلة و الأشخاص الذين يجلسون على المقاعد الخاصة بالحافلة، هم قيم عناصر المصفوفة. وحتى ندقق اكثر في معنى المصفوفة، فالمصفوفة هي عبارة عن جدول بالضبط ندخل فيه المعلومات او المعطيات التي نريد. ,مثال: بطاقة تعريف ,الأسم : ياسني ,الجنسبة: مغربية ,المدينة : ميدلت ,رقم الهاتف: 212000000000 وهناك نوعان من الجدوال - نوع يسمى بـ الجدوال التجميعية - ونوع اخر يسمى بـ الجداول المرقمة وسندرس ان شاء الله فيما يلي، كل نوع على حدا.

 <?php 
//سنسمي المصفوفة هنا بالأسم Identification_card  
$Identification_card=array("name"=>"yassine","nationality" => "Moroccan","city" => "Midelt", "phone_number" => "Marseille");  
print_r $Identification_card;  

خرج طباعة هذا المثال سوف يكون مثل هذا

											Array ( [name] => yassine [nationality] => Moroccan [city] => Midelt [phone_number] => Marseille )
										

مثال: هو نفس المثال السابق الجداول التجميعية وسنلاحظ ان ذلك الجدول في المثال يتعمد في ترتيبه وتسسله على كلمات نحن اخترناها بذلك الترتيب: (الأسم - الجنسية - المدينة - رقم الهاتف) وعليه فنحن نعتمد الجدول في ترتيب قيم عناصره على كلمات حروف ،اسماء او افعال( فإن ذلك الجدول يسمى بجدول تجميعي (arrays Associative) إذن اسم المصفوفة هنا سيكون هو : بطاقة تعريف عناصر المصفوفة: الأسم - الجنسية - المدينة - رقم الهاتف قيم عناصر المصفوفات : ياسني - مغربية - ميدلت - 212000000000 ترجمة ذلك في لغة php لقد عرفنا بشكل نظري وعام كيف هي المصفوفة التجميعية والأن سنتطرق الى طريقة كتابة تلك المصفوفة في php فقط سنعتمد على اللغة الأنجليزية في كتابة المثال السابق

مثال #6

 <?php 
//سنسمي المصفوفة هنا بالأسم Identification_card  
$Identification_card=array('Sutrday','friday','Thursday','Wednesday','Tuesday','Monday','Sunday);  
print_r $Identification_card;  

خرج طباعة هذا المثال سوف يكون مثل هذا

											Array ( [0] => Sutrday [1] => friday [2] => Thursday [3] => Wednesday [4] => Tuesday [5] => Monday [6] => Sunday )
										


المتغيرات في لغة php

من العناصر الرئيسية في أي لغة ووظيفتها تخزين المعلومات في الذاكرة بصورة مؤقتة ويتكون المتغير من عنصرين أساسين هما - الاسم : وهو يدل على اسم معني نختاره نحن لـ متغير نريد استعماله. - والقيمة: وهي المعلومة التي نريد ان يحملها المتغير والتي تتحول. و يجب ان ننسى ان المتغيرات التي ننشيء يجب ان تبتدأ بعلامة الدولار : $ وكمسلمة : اي اسم يبتدأ بعلامة الدولار $ هو عبارة عن متغير.

القصد هنا هو أنواع البيانات التي يمكن تخزينها في المتغيرات

string int float bool null array
هذا النوع من المتغيرات خاص بالنصوص والقيمة بهذا النوع تكون دائمة بين علامتي تنصيص مزدوجة او فردية الارقام الطبيعية أو الصحيحة وهي الارقام التي تحتوي على الفاصلة العشرية هو متغير منطقي يحتمل اكثر من قيمتين: false or true قيمة فارغة يعني عندما ننشىء متغير ونعطيه اي قيمة فيكون هذا المتغير فارغ راجعها في قسم المصفوفات

ملاحظات مهمة :

هناك قواعد عند كتابة المتغيرات يجب ان يتم مراعتها

1 -جميع اسماء المتغيرات لا يجب ان تبتدأ برقم بعد علامة الدولار مباشرة ، مسموح يحتوي الاسم على رقم لكن الغير مسموح به هو ان يكون هذا الرقم هو الأول في الأسم

2-اسماء المتغيرات حساسة لوضعية الأحرف فالمتغير $name ليس هو المتغير $Name

3-امكانية استخدام العلامة : _ علامة underscore في بداية او داخل اسم المتغير لكن يرجي ملاحظة انه هناك متغيرات محجوزة في اللغه لا يمكن أستخدامهاو تسمي بالسوبر جلوبال super global variables ويحتوي الجدول التالي عليها

$GLOBALS $_SERVER $_GET $_POST $_FILES $_REQUEST $_SESSION $_ENV $_COOKIE $php_errormsg $http_response_header $argc $argv
المصفوفة An associative array هي مصفوفة مفتاحية أو تجميعية تحتوي علي مرجعية لكل المتغيرات التي قد تم تعريفها في المنظار العام للأسكربت . وأسماء المتغيرات هي مفتاح هذه المصفوفة. المدخلات في هذه المصفوفة تم أنشائها بواسطة الخادم وليس هناك أي ضمانه علي انه اي خادم ويب سوف يزودك بهذه المعلومات سوف تجد المزيد من المعلومات بخصوص هذا في التوثيق الرسمي ل CGI/1.1 specification , هي مصفوفة تحتوي علي معلومات كا الهيدرز والمسارات واماكن الاسكربتات HTTP GET variables HTTP POST variables HTTP File Upload variables HTTP Request variables Session variables Environment variables HTTP Cookies The previous error message HTTP response headers The number of arguments passed to script Array of arguments passed to script

مثال #1

 <?php 
$name ='yassine';  
$age = '22 سنة';
echo $name,$age;
$age = '12 سنة';
echo $age , $name;
الخرج الان سوف يكون 12 سنة#

خرج طباعة هذا المثال سوف يكون مثل هذا

										22 سنة12 سنةyassine
									

تمرين المتغيرات أكتب متغيرات تحمل القيم التالية

										name,age,city,country
									

ثم قم بأستخدام هذه المتغيرات لطباعه الجملة التالية

											.أسمي هو محمود عمري هو 27 عام أعيش في القاهرة وأنا من مصر 
										

الكود المستخدم في هذا التمرين هو

 <?php 
$name ='mahmoud';  
$age = '27 عام';
$country = 'مصر';
$city = 'القاهرة';
print " .أسمي هو $name عمري هو $age أعيش في $city و أنا من $country ";
# ملاحظة : انة تم وضع الكود بين علامتي تنصيص وذلك حتي تستطيع كتابه المتغيرات بداخل الكود

جرب أستخدام علامة التنصيص الأحادية ولنري ماذا سوف يحدث عند الطباعة

												.أسمي هو $name عمري هو $age أعيش في $city و أنا من $country 
											

سؤال : لكن لماذا حدث هذا؟

بكل بساطة علامتي التنصيص الثنائية تستخدم فيما يسمي بالهروب من html لاحقا

المصادر

دليل php الرسمي الأصدار بتاريخ : 2021-11-29

الزيرو ويب سكول : فيديو تثبيت xampp

كتاب أساسيات لغة PHP للكاتب : ياسني ابوالشريف