بسم الله الرحمن الرحيم
لنفترض أنك تعرضت يوما ما إلي حالة برمجية جعلتك تحتاج إلي عمل دالة تقوم بإجراء بحث عن شئ معين داخل مصفوفة ما , ولكن
الجديد هذه المرة أن عملية البحث سوف تتم بشكل مختلف نوعا ما
حيث سوف يكون من المتوقع أن يمرر إلي هذه الدالة قيم غير متوقعة إلي حدما , ربما يكون هذا الكلام غامض لذلك دعنا نأخذ مثال يوضح هذا الأمر
مثال
نفترض أننا نملك فئة باسم Person
تحتوي علي متغيران وهما اسم الشخص personName و الدولة محل ميلاده country
كما يلي
/** Person Class */
class Person
{
var $personName;
var $country;
function Person($personName, $country) {
$this->personName = $personName;
$this->country = $country;
}
}ثم قمنا بعمل مصفوفة لبعض الأشخاص
مثلا كما يلي
/** making array of persons */
$p1 = new Person("person 1" , فلسطين);
$p2 = new Person("person 2" , سوريا);
$p3 = new Person("person 3" , مصر);
$p4 = new Person("person 4" , الأردن);
$p5 = new Person("person 5" , فلسطين);
$p6 = new Person("person 6" , مصر);
$p7 = new Person("person 7" , العراق);
$p8 = new Person("person 8" , اليمن);
$p9 = new Person("person 9" , مصر);
$p10 = new Person("person 10", اليمن);
$p11 = new Person("person 11", سوريا);
$p12 = new Person("person 12", مصر);
$p13 = new Person("person 13", مصر);
$persons = array( $p1, $p2, $p3, $p4, $p5, $p6, $p7, $p8, $p9, $p10, $p11, $p12, $p13 );فقد قمنا بتعريف 13 شخص في المصفوفة persons
ولكل شخص تم تعريف اسمه والدولة محل ميلادة
حيث تم تعريف ثوابت للدول كما يلي
ولكن ينبغي عليك أنت تحديد قيم هذه الثوابت
/** Country Constants */
define("مصر" , ???? );
define("سوريا" , ???? );
define("السعودية" , ???? );
define("العراق" , ???? );
define("اليمن" , ???? );
define("المغرب" , ???? );
define("ليبيا" , ???? );
define("السودان" , ???? );
define("الكويت" , ???? );
define("تونس" , ???? );
define("فلسطين" , ???? );
define("الأردن" , ???? );
define("الإمارات" , ???? );
define("البحرين" , ???? );
define("الجزائر" , ???? );المطلوب
عمل دالة باسم FindPersons يمرر لها دولة أو أكثر ثم تقوم بالبحث داخل مصفوفة الأشخاص السابقة
الذين يتبعون هذه الدول ثم تقوم بإرجاع أسماء هؤلاء الأشخاص
مثال لطريقة إستدعاء هذه الدالة
FindPersons(مصر); FindPersons(مصر | فلسطين); FindPersons(اليمن | فلسطين); FindPersons(اليمن | فلسطين | مصر); FindPersons(اليمن | فلسطين | مصر | سوريا);
وهكذا يتم إستدعاء هذه الدالة ويتم تمرير الدول لها بشكل غير متوقع
أرجو أن يحالفكم توفيق الله لعمل هذه المهمة
في إنتظار إجاباتكم عن حل هذه المشكلة البرمجية وسوف أطرح عليكم حل هذه المشكلة بعد يومين إن شاء الله ,وبالله التوفيق
والسلام عليكم
