לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 05-04-2009, 22:11
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
מאמר קצר על משתנים ב-PHP וכיצד הם עובדים מבפנים

מצאתי מאמר קצר ומעניין על משתני PHP וכיצד מנוע ה-zend מתייחס אליהם:
http://safalra.com/programming/php/references-tutorial/

( עריכה: )
מצאתי מאמר נוסף בקובץ PDF להורדה: http://derickrethans.nl/php_references_article.php


( עריכה2: )
הנושא הזה נראה לי די חשוב להבנה כך שהעלתי את הקובץ (ששוקל 1MB) כדי שבטוח תוכלו להוריד אותו ולא יהיו בעיות.

קישורים להורדה:
http://www.myfileupload.net/downloa...40a53b336dfc73b
http://rapidshare.com/files/2178737...rticle.pdf.html
http://www.filefactory.com/file/af9...les-article_pdf

מדובר שם על כיצד PHP מנהל משתנים, וכיצד הוא מבדיל בין הקצאה ע"י ייחוס ( עם & ) והקצאה רגילה.
הדגש הוא שהקצאה ע"י ייחוס במצבים מסוימים, ואולי אפילו פופולריים, עשויה לגרום לביצועים חלשים יותר כיוון שזה מבצע העתקה של התוכן שאליו מתייחסים המשתנים. זה בניגוד למה שהאמנתי בעבר, שהקצאה ע"י ייחוס אולי אפילו מייעלת את הקוד.
בקיצור, אל תשתמשו ב- reference אם אתם לא רואים צורך אמיתי. קראו את הכתבה להבנה עמוקה וטובה יותר.

קריאה מהנה

נערך לאחרונה ע"י dorM בתאריך 06-04-2009 בשעה 00:58.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 14-04-2009, 20:15
צלמית המשתמש של tnadav1
  משתמש זכר tnadav1 tnadav1 אינו מחובר  
 
חבר מתאריך: 02.10.05
הודעות: 2,355
שלח הודעה דרך MSN אל tnadav1
בתגובה להודעה מספר 1 שנכתבה על ידי dorM שמתחילה ב "מאמר קצר על משתנים ב-PHP וכיצד הם עובדים מבפנים"

לא היה כתוב במאמר ששימוש בייחוס גורם לביצועים חלשים, ואם הבנתי אותך נכון, לא כתוב שמנוע של PHP מבצע העתקה של התוכן של המשתנה.

מה שכתוב שם זה שיש מבני נתונים.
אחד זה בעצם כל המידע שיש במשתנים, והשני זה בעצם השם של המשתנה, וייחוס לאיפה הערך של המשתנה.

כשאתה יוצר משתנה לפי ייחוס, נוצר עוד ערך עם שם של המשתנה שמיוחס לאותו מקום..
לא מבין איפה הבעיה פה, ולמה זה עלול לגרום לביצועים חלשים

וספק אם אנשים שמתקשים באנגלית ולא קראו את המאמר באנגלית יהיה להם מושג מה כתוב בתרגום לעברית.. Google Translate זה אחלה כלי, שעובדים באנגלית.. עם עברית זה לא ממש מסתדר (כי לא הרבה אנשים משתמשים בעברית)
_____________________________________


תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 15-04-2009, 20:41
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 4 שנכתבה על ידי tnadav1 שמתחילה ב "לא היה כתוב במאמר ששימוש..."

לפי מה שהבנתי - כאשר אתה נמצא במצב שבו יש משתנה שהוא reference למשתנה אחר, ושניהם מצביעים על אותו הערך (כמובן) ; ובמצב הזה אתה גם מקצה את הערך הזה למשתנה ללא אופרטור הייחוס (הקצאה רגילה), מה שקורה זה שמתבצעת העתקה של התוכן\ערך שהמשתנים מצביעים עליו.

לדוגמא, אם תכתוב:
קוד PHP:
 $foo 'hello world';
$bar =& $foo

אז לא תתבצע העתקה.

וגם אם תכתוב:
קוד PHP:
 $foo 'hello world';
$bar $foo

לא תתבצע העתקה.

אבל אם תכתוב:
קוד PHP:
 $foo 'hello world';
$bar =& $foo;
$var $foo

אז כן תתבצע העתקה.

בהודעה הראשונה כתבתי שהעתקה מתרחשת רק במצבים מסוימים (כמו האחרון).
האם זה גם מה שאתה הבנת מקריאת הקובץ?

ציטוט:
במקור נכתב על ידי tnadav1
וספק אם אנשים שמתקשים באנגלית ולא קראו את המאמר באנגלית יהיה להם מושג מה כתוב בתרגום לעברית.. Google Translate זה אחלה כלי, שעובדים באנגלית.. עם עברית זה לא ממש מסתדר (כי לא הרבה אנשים משתמשים בעברית)

השירות של google לדעתי בכלל לא מתאים לשימוש, הוא לא מפרש טוב...
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 16-04-2009, 02:06
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 6 שנכתבה על ידי tnadav1 שמתחילה ב "[QUOTE=dorM] וגם אם..."

ציטוט:
ברור שתתבצעה העתקה, כי אז נוצר מצב שאם אתה משנה ערך של אחד מהמשתנים, הערך של המשתנה השני גם יושפע, מה שנקרא השמה על פי ייחוס... אם זה מבוצע ככה, זה = ו- &= עושים אותו הדבר


לפני שקראתי את הכתבה גם לי זה היה ברור. אבל זה לא נכון.

כשקראתי את הכתבה, נאמר שבמצב הזה בדיוק:
קוד 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|

על מילים בודדות, והפירוש יצא צולע :/
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 05:26

הדף נוצר ב 0.05 שניות עם 11 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר