الدرس التاسع: الوظائف

في الدروس السابقة تعلمنا أن وظائف مثل توثيقdate() وتوثيقarray()، في هذا الدرس سنتعلم إنشاء وظائف بأنفسنا باستخدام أمر توثيقfunction.

ما هي الوظيفة؟

الوظيفة تعالج مدخلات وتعطينا مخرجات، يمكنها أن تكون مفيدة إذا مثلاً لديك طيف واسع من البيانات التي تحتاج لمعالجة أو لديك حسابات أو إجراءات يجب أن تجريها مرات عديدة.

الوظيفة تكتب بهذا الشكل:


	Function Name(list of parameters) {
	   Statement
	}
	
	

بهذه الطريقة يمكننا إنشاء وظيفة بسيطة تضيف القيمة 1 إلى أي رقم، ستكون بهذا الشكل:

	function AddOne($x) {
	   $x = $x + 1;
	   echo $x;
	}

	
	

الوظيفة سميناها AddOne وهي تطلب مع رقم وفي المثال وضعنا الرقم 34:

	echo AddOne(34);
	
	

وستعطينا الوظيفة القيمة 35.

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

المثال 1: وظيفة بمزيد من المدخلات

كما ذكرنا في السابق يمكنك بسهولة إنشاء وظيفة تحتاج للعديد من المدخلات، في المثال التالي سننشأ وظيفة تتطلب 3 مدخلات وهي ثلاث أرقام وستعطينا قيمة جمع الأرقام الثلاثة:


	<html>
	<head>
	<title>Functions</title>

	</head>
	<body>

	<?php

	function AddAll($number1,$number2,$number3) {
	   $plus = $number1 + $number2 + $number3;
	   return $plus;
	}
	 
	echo "123 + 654 + 9 equals " . AddAll(123,654,9);

	?>

	</body>
	</html>
	
	

حسناً، هذا كان بسيطاً جداً، لكن النقطة هنا هي توضيح أن الوظيفة يمكنها أن تقبل المزيد من المدخلات.

مثال 2: الوقت والتاريخ بالإنجليزية

لنجرب إنشاء وظيفة معقدة أكثر، وظيفة تتطلب إدخال التاريخ فتحوله لنا إلى هذا الشكل: Wednesday, 15 February, 2012, 10:00:00 AM


	<html>
	<head>
	<title>Functions</title>
	</head>
	<body>

	<?php

	function EnglishDateTime($date) {
	 
	  // Array with the English names of the days of the week
	  $arrDay = array("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday");
	 
	  // Array with the English names of the months
	  $arrMonth = array("","January","February","March","April","May","June","July","August","September","October","November","December");
	 
	  // The date is constructed
	  $EnglishDateTime = $arrDay[(date("w",$date))] . ", " . date("d",$date);
	  $EnglishDateTime = $EnglishDateTime  . " " . $arrMonth[date("m",$date)] . " " . date(Y,$date);
	  $EnglishDateTime = $EnglishDateTime  . ", " . date("H",$date) . ":" . date("i",$date);
	 
	  return $EnglishDateTime;

	}
	 
	// Test function
	echo EnglishDateTime(time());

	?>

	</body>
	</html>
	
	

لاحظ كيف أن '$arrMonth' و'$EnglishDateTime' كتبا على عدة أسطر، فعلنا ذلك لتظهر بشكل جيد لمن يملك شاشة صغيرة، طريقة كتابة البرنامج لا تؤثر على البرنامج.

الوظيفة أعلاه ستعمل في كل المزودات بغض النظر عن اللغة، هذا يعني أنك تستطيع استخدام هذه الوظيفة إن كان موقعك مستضافاً في مزود فرنسي لكنك تريد التواريخ بالإنجليزية.

في هذه المرحلة لن نتعمق أكثر في الوظائف، لكنك الآن تعلمت القليل حول كيفية عمل الوظائف.



<< Lesson 8: مصفوفات

Lesson 10: تمرير المتغيرات في عنوان الموقع URL >>