16-04-2009, 02:06
|
מנהל
|
|
חבר מתאריך: 26.07.08
הודעות: 6,473
|
|
ציטוט:
ברור שתתבצעה העתקה, כי אז נוצר מצב שאם אתה משנה ערך של אחד מהמשתנים, הערך של המשתנה השני גם יושפע, מה שנקרא השמה על פי ייחוס... אם זה מבוצע ככה, זה = ו- &= עושים אותו הדבר
|
לפני שקראתי את הכתבה גם לי זה היה ברור. אבל זה לא נכון.
כשקראתי את הכתבה, נאמר שבמצב הזה בדיוק:
קוד PHP:
$foo = 'hello world';
$bar = $foo;
(ללא שום פעולות נוספות\אחרות)
לא תתבצע העתקה. כאן בא האופטימייזר של PHP.
אבל במצבים הבאים:
קוד PHP:
$foo = 'hello world';
$bar =& $foo;
$var = $foo;
קוד PHP:
$foo = 'hello world';
$bar = $foo;
$var =& $foo;
תתבצע העתקה של הערך בגלל המכניזם של PHP (או של zend?) בטיפול במשתנים.
ציטוט:
בהדגמה השלישית זה נורמלי שתבוצע העתקה, כי השתמשת באופרטור = ולא &=, בתור מתכנת, זה מה שאני רוצה שייקרא
|
הטיפול של PHP במשתנים ו-references הוא שונה. הסימן & זה לא pointer ואין לו שום קשר לזה מלבד שזה אותו התו.
קראת את כל הכתבה בעיון..?
אתה גורם לי לחשוב שלא הבנתי נכון... למרות שאני חושב שהבנתי די טוב.. :|
אני בדר"כ השתמשתי בשירות:
http://translate.google.com/translate_t?hl=en#iw|en|
על מילים בודדות, והפירוש יצא צולע :/
|