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

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



  #1  
ישן 23-08-2007, 18:22
  Xpein Xpein אינו מחובר  
 
חבר מתאריך: 21.01.06
הודעות: 813
צריך עזרה בהבנת קוד בקשר לאובייקטים..

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

אז ככה, הנה הקוד מהספר:
קוד PHP:
 class Table
{
var 
$table_array = array();
var 
$headers = array();
var 
$cols;
function 
Table ($headers)
{
$this-> headers $headers;
$this->cols count ($headers);
}
function 
AddRow($row)
{
if ( 
count ($row) != $this->cols)
return 
false;
array_push ($this-> table_array $row );
return 
true;
}
function 
addRowAssocArray $row_assoc )
{
$row = array( );
foreach (
$this-> headers as $header)
{
if ( ! isset (
$row_assoc[$header] ))
$row_assoc[$header] = " ";
$row[] = $row_assoc[$header];
}
array_push ($this-> table_array $row );
return 
true;
}
function 
output()
{
echo 
"<pre>";
foreach (
$this-> headers as $header)
echo 
"<b>$header</b>";
echo 
"\n";
foreach (
$this->table_array as $y)
{
foreach (
$y as $excell )
echo 
"$excell";
echo 
"\n";
}
echo 
"</pre>";
}
}
$test = new table ( array ("a" "b" "c") );
$test-> addRow ( array (1,2,3) );
$test-> addRow ( array (4,5,6) );
$test-> addRowAssocArray ( array (b=>a=>c=> ) );
$test->output (); 

וזה הפלט:
ציטוט:
abc
123
456
603



אני קודם אגיד מה הבנתי ומה התקשתי..
בהתחלה יוצרים מחלקה בשם table ויוצרים בה שלוש מאפיינים, ששתיים מהם הם מערכים.
לאחר מכן יוצרים פונקציית קונסטרקטור שמכילה משתנה, ובפונקציה המשתנה שלה ($headers) משווים למאפיין של המחלקה headers שהוא מערך..
ואת המאפיין cols הופכים לתוצאה של מספר הרכיבים במערך $headers .

עכשיו פה קצת הסתבכתי.. יוצרים פונקציה נוספת ובה משתנה $row, ובהצהרת if אומרים שאם
מספר הרכיבים ב$row לא שווה לתוצאה של מספר הרכיבים במערך $headers, הביטוי מחזיר
false . והשאלה - מדוע צריך לבדוק אם מספר הרכיבים של row לא שווה למספר
הרכיבים של $headers וחוץ מזה, $row בכלל ריק אז זה מחזיר false בכל מקרה..
לאחר מכן עושים array push ובו מוסיפים את המאפיין table_array ל
row. מדוע? וגם למה צריך שהביטוי יחזיר true ?
לאחר מכן יוצרים עוד פונקציה וגם בה משתנה.. בפונקציה הזאת מגדירים את $row כמערך,
ושוב משווים את המאפיין headers ל$header בלולאת foreach ובה בודקים האם
$row_assoc[$header] מכיל ערך. והשאלה- מה הקשר בין המשתנה שיש בפונקציה
ל$header?
ולמה צריך לבדוק שזה מכיל ערך?
כמו שאני הבנתי, הופכים את row_assoc למערך רב מימדי שמכיל את המערך $header
אבל, בשורה הבאה עושים כך $row_assoc[$header] = " "; ולא הבנתי מה פירוש ה = " ";
ומה הוא משנה.
בשורה לאחר מכן מוסיפים מערך לתוך המערך row שמכיל מערך..
לאחר מכן חוזרות על עצמם השורות
array_push ($this-> table_array , $row );
return true;
מדוע?
ושוב, לאחר מכן מוספת פונקציה, ובה שוב משווים את headers as $header
בלולאת foreach ובה מדפיסים את header ולאחר מכן
משווים את table_array as $y
ואז $y as $excell
ומדפיסים את $excell
ולבסוף, יוצרים אובייקט למחלקה table ומוסיפים לו מעריך,
ואז פעמיים מגיעים לשיטה addrow ומוסיפים מעריך..
ואז מגיעים לשיטה addRowAssocArray ומוסיפים מעריך משוייך..
ו... מפעילים את הפונקציה output .



אממ זה היה ארוךךךךךך אני מקווה שמשהו יעזור לי להבין את העקרון שמאחורי הקוד
הזה ולענות לי על השאלות כי בחוברת לא היה כתוב כלום


ת-ו-ד-ה -ר-ב-ה מ-ר-א-ש !-!-!-!-!-!
_____________________________________
--- ! Area Close ! ---

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

הדף נוצר ב 0.07 שניות עם 12 שאילתות

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

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