الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الدرس الثاني : هيا بنا نبدأ مع لغة php !

بدأه ahmedsaoud31 في 25 ديسمبر 2012 · 0 رد · 163 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1

الحمد لله والصلاة والسلام على رسول الله

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

هذا الدرس ضمن سلسة دروس الدورة التالية لتعلم لغة php !

*الثوابت :

- يتم تعريف الثوابت بإستخدام الكلمة المحجوزة const قبل اسم الثابت أو من خلال الدالة define ويتبع اسم الثابت نفس قواعد كتابة اسم المتغير غير أنه لا يبدأ بالعلامة $ ويُفضل أن يُكتب بالحروف الكبيرة

- يجب أن يُعطى الثابت قيمة عند عملية تعريفه ولا يمكن تغيير هذه القيمة فيما بعد

أمثلة لتعريف الثوابت :

<?php
const أحمد = "ahmed";
const AAA = 'Ahmed';
define("BBB","Mohammed");
echo أحمد.AAA.BBB;
?>

*حالة الشرط if :

- وهي أنه في حالة تحقق الشرط يتم تنفيذ الأمر وإلا لا يتم التنفيذ والشرط في النهاية إما أن يكون محقق true أو غير محقق false

الصورة العامة لحالة if البسيطة هو :

if(/* الشرط */)
	/* الأمر المراد تنفيذه في حالة تحقق الشرط */;

OR


if(/* الشرط */)
{
	// أمر1
	// أمر2
	// أمر3
}

ملاحظة : في حالة تحقق شرط جملة if وعدم وجود أقواس يتم تنفيذ الأمر البرمجي بعد if وصولاً لنهاية الأمر البرمجي المنتهي بالفاصلة المنقوطة ;

حالة الشرط if else وتكون على الصورة :

if(/* الشرط */)
{
	// الجمل البرمجية في حالة تحقق الشرط
}
else
{
	// الجمل البرمجية في حالة عدم تحقق الشرط
}

حالة الشرط المتعددة else if وتكون على الصورة :

if(/* الشرط */)
{
	// الجمل البرمجية هنا
}
else if(/* الشرط */)
{
	// الجمل البرمجية هنا
}
.
.// وهكذا تكرار غير محدود
.
else if(/* الشرط */)
{
	// الجمل البرمجية هنا
}
else
{
	// الجمل البرمجية هنا
}

ولا يشترط كتابة جملة else المفردة في النهاية وأيضاً يمكن الإستغناء عن أقواس المجموعة إذا كان لدينا جملة واحده داخل المجموعة

أمثلة على جملة if :

<?php
	if(true) 





	echo "true<br>";

	if(true)
	{
		echo "<h1>true</h1>";
		echo "<h1>inside if</h1>";
	}

	if(false) echo "false<br>";

	if(false)
		echo "<h2>false</h2>";
		echo "outside if";
?>

- في حالة true الشرط محقق دائماً أما في حالة false فالشرط غير محقق دائماً

أمثلة إستخدام if مع أنواع البيانات المختلفة وكما بيَّنا الدرس السابق أن أي عدد بخلاف الصفر فهو يعبر عن القيمة true وأن أي سلسة نصية بخلاف السلسة النصية الفارغة فهي أيضاً تعبر عن القيمة true والمثال التالي يوضح هذا :

<?php
	if(0) 
		echo "<h3>0 true</h3>";
	else
		echo "<h3>0 false</h3>";

	if(13) 
		echo "<h3>13 true</h3>";
	else
		echo "<h3>13 false</h3>";

	if(-50) 
		echo "<h3>-50 true</h3>";
	else
		echo "<h3>-50 false</h3>";

	if(null) 
		echo "<h3>null true</h3>";
	else
		echo "<h3>null false</h3>";

	if('') 
		echo "<h3>'' true</h3>";
	else
		echo "<h3>'' false</h3>";

	if(' ') 
		echo "<h3>' ' true</h3>";
	else
		echo "<h3>' ' false</h3>";

	if('ahmed') 
		echo "<h3>ahmed true</h3>";
	else
		echo "<h3>ahmed false</h3>";
?>

* حالة if المختصرة :

condition?true:false;

مثال:

<?php
	echo true?"yes":"no";
?>

* العمليات المنطقية :

&&    	وand    	و
||    	أو
or    	أو
!    	عكس
xor 	... :)

$a and $b هي true في حالة أن $a و $b كلاً منهما يكون true

$a && $b هي true في حالة أن $a و $b كلاً منهما يكون true

$a or $b هي true في حالة أن أي من $a أو $b يكون true

$a || $b هي true في حالة أن أي من $a أو $b يكون true

!$a هي true في حالة أن $a يكون false و false في حالة $a يكون true

$a xor $b هي true في حالة أن أي من $a أو $b يكون true ولكن غير متمشابهين

ملاحظة : يمكنك إستخدام أي صيغة لعمليتي and و or

- الكود التالي ينفذ جدول الصواب والخطأ للعمليات المنطقية السابقة :

<?php
	echo "AND && <br>------------<br>true and true = ";
	if(true and true) 
		echo "true<br>";
	else
		echo "false<br>";

	echo "true and false = ";
	if(true and false) 
		echo "true<br>";
	else
		echo "false<br>";

	echo "false and false = ";
	if(false and false) 
		echo "true<br>";
	else
		echo "false<br>";

	echo "<br>OR | | <br>------------<br>true or true = ";
	if(true or true) 
		echo "true<br>";
	else
		echo "false<br>";

	echo "true or false = ";
	if(true or false) 
		echo "true<br>";
	else
		echo "false<br>";

	echo "false or false = ";
	if(false or false) 
		echo "true<br>";
	else
		echo "false<br>";

	echo "<br>XOR  <br>------------<br>true xor true = ";
	if(true xor true) 
		echo "true<br>";
	else
		echo "false<br>";

	echo "true xor false = ";
	if(true xor false) 
		echo "true<br>";
	else
		echo "false<br>";

	echo "false xor false = ";
	if(false xor false) 
		echo "true<br>";
	else
		echo "false<br>";

	echo "<br>!  <br>------------<br>!true = ";
	if(!true) 
		echo "true<br>";
	else
		echo "false<br>";

	echo "!false = ";
	if(!false) 
		echo "true<br>";
	else
		echo "false<br>";
?>

* عمليات المقارنة :

==	يساوي!=	لا يساوي
>	أكبر من
<	أصغر من
>=	أكبر من أو يساوي
<=	أضعر من أو يساوي
===	مساواة القيم من نفس النوع
!==	عدم مساواة القيم من نفس النوع

- أظنهم واضحين ولكن سأوضح عمل المساواة من نفس النوع وعدم المساواة من نفس النوع

- وكما عرفنا في الأعلى أن الصفر مساوي للقيمة false وأي عدد خلاف الصفر مساوي للقيمة true وقيمة السلسة النصية بخلاف السلسة النصية الفارغة مساوية للقيمة true فلهذا لا يصلح أن أستخدم قيم المساواه العادية وكمثال إذا أردت أن أختبر القيمة على أنها false و false فقط إذاً علي إستخدام عملية المساواة من نفس النوع والمثال التالي يوضح العملية :

<?php
if('10ahmed' == 10) 
	echo "10ahmed == 0 yes<br>";
else
	echo "10ahmed == 0 no<br>";

if('' == 0) 
	echo "'' == 0 yes<br>";
else
	echo "'' == 0 no<br>";

if(0 == false) 
	echo "0 == false yes<br>";
else
	echo "0 == false no<br>";

if('' == false) 
	echo "'' == false yes<br>";
else
	echo "'' == false no<br>";

if(-10 == true) 
	echo "-10 == true yes<br>";
else
	echo "-10 == true no<br>";
?>

- ولكن عند استخدام عمليات المساواه من نفس النوع سيتم التعرف على القيم ومساواتها من نفس نوعها فالمثال السابق يكون على الشكل التالي :

<?php
if('10ahmed' === 10) 
	echo "10ahmed == 0 yes<br>";
else
	echo "10ahmed == 0 no<br>";

if('' === 0) 
	echo "'' == 0 yes<br>";
else
	echo "'' == 0 no<br>";

if(0 === false) 
	echo "0 == false yes<br>";
else
	echo "0 == false no<br>";

if('' === false) 
	echo "'' == false yes<br>";
else
	echo "'' == false no<br>";

if(-10 === true) 
	echo "-10 == true yes<br>";
else
	echo "-10 == true no<br>";
?>

- التالي مثال على حالة if else المتعدده , فلنفرض أن لدينا قيمة ولتكن مُعرف الصفحة الـ id وعلى أساس قيمته يتم إنشاء إرتباط تشعُبي لصفحات مختلفه فيكون الكود كالتالي :

<?php
$id = 200;
if($id == 100)
{
	echo "<h3><a href='page1.php'> go page1 </a></h3>";
}
else if($id == 200)
{
	echo "<h3><a href='page2.php'> go page2 </a></h3>";
}
else if($id == 400)
{
	echo "<h3><a href='page3.php'> go page3 </a></h3>";
}
else if($id == 500)
{
	echo "<h3><a href='page4.php'> go page4 </a></h3>";
}
else
{
	echo "<h3><a href='index.php'> go home </a></h3>";
}

?>

* حالة switch case :

- يمكن عمل نفس المثال السابق بإستخدام جملة switch case كالتالي :

<?php
$id = 250;
switch($id)
{
	case 100:
		echo "<h3><a href='page1.php'> go page1 </a></h3>";
		break;
	case 200:
		echo "<h3><a href='page3.php'> go page3 </a></h3>";
		break;
	case 300:
		echo "<h3><a href='page4.php'> go page4 </a></h3>";
		break;
	default:
		echo "<h3><a href='index.php'> go home </a></h3>";

}
?>

- حيث أن جملة break هي للخروج بعد تنفيذ الأمر

* دالة defined للتعرف على الثابت هل هو موجود أم لا وتعيد القيمة true في حالة وجوده وتعيد القيمة false إن لم يكن موجود

* دالة isset للتعرف على المتغير هل موجود ومسند له قيمه أم لا وتعيد القيمة true في وجود المتغير ووجود قيمة مسنده له وتعيد القيمة false في حالة عدم وجود المتغير أو عدم وجود قيمة مسنده له أو أن تكون القيمة المسنده للمتغير هي القيمة الفارغة null

والمثال التالي يوضح عملهم :

<?php
define("AAA","Mostaf ");
const BBB = "Khaled ";
$var1;
$var2 = null;
$var3 = '';

if(defined("AAA"))
	echo AAA;
if(defined("BBB"))
	echo BBB;
if(defined("CCC"))
	echo CCC;

if(isset($var1))
	echo '<br>$var1 is set';
if(isset($var2))
	echo '<br>$var2 is set';
if(isset($var3))
	echo '<br>$var3 is set';
if(isset($var4))
	echo '<br>$var4 is set';
?>

حلقات الدوران :

* حلقة الدوران for :

الشكل العام لها كالتالي :

<?php
for(/*بداية الحلقة*/;/*شرط التوقف*/;/*معامل الزيادة أو النقصان*/)
{
	/*
		الكود البرمجي المراد تكراره عدد من المرات
	*/
}
?>

* مثال :

<?php
for($i=0;$i<10;$i++)
{
	echo '<h3>$i='.$i.'</h3>';
}
?>

أو كتابتها بهذا الشكل إن كانت تعليمه واحده

<?php
for($i=0;$i<10;++$i) echo '<h3>$i='.$i.'</h3>';
?>

لتخطي دورة معينة والإنتقال للتليه نستخدم الكلمة المحجوزة continue

* مثال :

<?php
for($i=0;$i<10;$i++)
{
	if($i == 5) continue;
	echo '<h3>$i='.$i.'</h3>';
}
?>

- وإن أردنا الخروج من الحلقة نهائياً نستخدم break

* مثال :

<?php
for($i=0;$i<10;++$i)
{
	if($i == 5) break;
	echo '<h3>$i='.$i.'</h3>';
}
?>

* حلقة الدوران while :

- الصيغة العامة

<?php
while(/*الشرط*/)
{
	/*
		الكود المراد تكراره
	*/
}
?>

- وتعني الدوران في حالة تحقق الشرط وفي حالة عدم تحققه لا يتم الدخول للحلقه

* أمثلة :

<?php
$count = 0;
while(10)
{
	echo "<h3> Hi </h3>";
}
while(true)
{
	echo "<h3> Hi </h3>";
}
while('ahmed')
{
	echo "<h3> Hi </h3>";
}
while($count < 10)
{
	echo "<h3> Hi </h3>";
}
while($count != 10)
{
	echo "<h3> Hi </h3>";
}
?>

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

* أمثلة على حلقات صحيحة ومنتهية :

<?php
$count = 1;
while($count <= 10)
{
	echo "<h3> Hi </h3>";
	$count++;
}
while(true)
{
	echo "<h3> YES </h3>";
	if($count++ == 20) break;
}
?>

* حلقة الدوران do while :

- وهي نفس حلقة الدوران while ولكن الفرق عنها أنها تنفذ دوران واحد قبل إختبار تحقق الشرط وصيغتها العامة هي :

<?php
do
{
	/*
		الأكواد المراد تكرارها
	*/
}while(/*الشرط*/);
?>

* أمثلة :

<?php
do
{
	echo "<h3>Hi</h3>";

}while(false);

$count = 0;
do
{
	echo '<h3>$count = '.++$count.'</h3>';

}while($count < 10);

?>

ملاحظة : في كل حلقات التكرار السابقة يمكن استخدام continue لتخطي حلقة أو الخروج نهائياً من الحلقة بإستخدام break

هناك صيغ أخرى لإستخدامها مع الأوامر البرمجية كـ if و for و while و switch لإستخدامها بدلاً من الأقواس والصيغ العامة لها كالتالي :

<?php
if (/*الشرط*/):
	/*
		أي عدد من الأوامر البرمجية
	*/
endif;

// الحالة المتعدده
if(/*الشرط*/):
	/*
		أي عدد من الأوامر البرمجية
	*/
elseif(/*الشرط*/):
	/*
		أي عدد من الأوامر البرمجية
	*/
elseif(/*الشرط*/):
	/*
		أي عدد من الأوامر البرمجية
	*/
endif;

while(/*الشرط*/):
	/*
		الأوامر البرمجية المراد تكرارها
	*/
endwhile;

for(/*أوامر الحلقة*/):
	/*
		الأوامر البرمجية المراد تكرارها
	*/
endfor;

switch(/*القيمة*/):
	case "":
		// ...
		break;
	case "":
		// ...
		break;
	default:
		//...
endswitch;
?>

التمرين :

- إطبع جدول الضرب 12*12 في جدول

- إطبع جدول الضرب للعدد 5 في صف واحد من جدول

- إطبع جدول الضرب للعدد 5 في عمود واحد من جدول

ملاحظة : إستخدم وسم table في الـ HTML

دمتم في أمان الله

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

مواضيع مشابهة