
04-10-2007, 19:23
|
|
|
|
חבר מתאריך: 19.03.07
הודעות: 75
|
|
|
על הקצה
אלוהים... לא מצאת משהו יותר קיצוני מזה?
(-:
המממ... בוא נראה... OK, נגיד ש... אתה שואל שאלות קשות וצריך להשתיק אותך מהר, לפני שמישהו ישים לב.
יש לי מחסן נשק ובו שמונה אקדחים (גרסה מיוחדת של רולטה רוסית), אחד מהם טעון. אני רוצה את האחד הטעון לירות בך כדי לא תמציא עוד שאלות מוזרות.
יש לי את המחלקה הבאה - אקדחים.
קוד PHP:
class Gun { private $bullets; function Fire() { if ($this->$bullets > 0) { // SHOOT ! $this->$bullets--; } else // do click! } function Load($new_bullets) { $this->$bullets = $new_bullets; } function IsLoaded() { if ($this->$bullets > 0) return true else return false } }
את מחסן הנשק אני שומר כאן:
קוד PHP:
$arsenal[1] = new Gun(); $arsenal[2] = new Gun(); $arsenal[3] = new Gun(); ... $arsenal[8] = new Gun(); // load gun 5 with 6 bullets $arsenal[5]->Load(6);
שים לב שרק אקדח 5 טעון.
למקרה שמישהו יעצבן אותי ואני ארצה אקדח בניתי את החיפוש הבא
קוד PHP:
function &find_loaded_gun() { foreach ($arsenal as $gun){ if ($gun->IsLoaded() ) return $gun } return NULL; }
ועכשיו באטרף שלי, עלית לי על כל העצבים ואני בא לחסל אותך!
קוד PHP:
$my_gun =& find_loaded_gun; $my_gun->Fire();
כלומר קיבלתי ליד את האקדח הטעון (מספר 5) בלי לדעת בכלל מי הוא או לחשוב איפה הוא היה. יתרון משמעותי אם אתה עומד לפני דו קרב ורוצה לחסל את היריב בצורה קריאה. למרבה הצער זה לא יצליח לי הפעם כי שכחתי נקודהפסיק...
פףףף... אני מתדרדר לבדיחות קוד. המצב קשה.
|