שלח תשובה

זירת השאלות

1039
צפיות
9
תשובות

עזרה בPhp

,‏ 24 במרץ, 2013

<?php
$s;
echo gettype( $s );
?>
הוא רושם Null שזה בסדר ומעל מין טבלה כזאת אדומנה ואומר שיש שגיאה בשורה 3..למה?

עכשיו עוד דבר..

קוד PHP:
<?php
$s = 5;
echo is_int($s) ;
?>

9 תשובות

  1. idan5x הגיב:

    הכרזת על המשתנה S אך לא שמרת בו ערך. בשפת PHP אין צורך להכריז מראש על סוג הערך שיאוחסן במשתנה – הסוג נקבע לאחר ערך במשתנה.
    במידה ותציב ב-S מספר שלם, המשתנה S יהיה מסוג INT, במידה ותאחסן מחרוזת אז S יהיה STRING.
    מאחר והכרזת על S אך לא הצבת שום משתנה (כלומר, לא קבעת את סוג המשתנה המאוחסן בS), הפונקציה gettype תחזיר NULL. כלומר – המשתנה ריק, ולכן S הוא מטיפוס NULL.

  2. idan5x הגיב:

    כלומר – למשתנה אין טיפוס ולכן gettype() מחזירה שגיאה.

  3. ועוד שאלה
    מה זה אומר הדברים הבאים בphp כמובן(כיאלו דגומאות שאני יוכל להציב במשתנה כערך.
    object
    resource
    (:

  4. idan5x הגיב:

    לא הבנתי מה הבעיה בקוד השני…?

  5. idan5x הגיב:

    object זה בעצם "טיפוס" שבנוי במבנה של struct או class שהגדרת…
    כדי להבין יותר לעומק תקרא על מבנים ועל תכנות מונחה עצמים.

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

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

  7. idan5x הגיב:

    אני מצטער אבל אני עדיין לא מבין אותך? הפונקציה לא עושה מה שהיא צריכה?
    במידה ו-S הוא מטיפוס שלם (INT) אז הפונקצייה is_int צריכה להחזיר TRUE (כלומר 1).
    השורה השנייה קצת בלבלה אותי בגלל הפיסוק שלך – זו הייתה שאלה או הבערה?

    אשמח לעזור אם רק תסביר בצורה יותר ברורה מה הבעיה – למה אתה מצפה ומה קורה במקום.

שלח תשובה