למה זה לא עובד?

Mr Boggy Man

New member
למה זה לא עובד?

function oisint($text, $x) { if(is_int($text)) { echo "There was a problem"; exit(); } }​
בכל מצב, זה לא עובד. אם אני רושם למשל 2.3 זה עדיין מאשר את הדבר, ואם אני עושה
function oisint($text, $x) { if(!is_int($text)) { echo "There was a problem"; exit(); } }​
זה לא נותן לשום מספר לעבור. מה עושים?
 

ik5

New member
אתה בודק בכלל שהוא באמת מאותחל ?

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

Mr Boggy Man

New member
מה הכוונה מאותחל?

זה פעם ראשונה שאני עושה משהו עם הנושא (לבדוק אם מדובר במספר שלם או לא). תוכל להסביר לי?
 

ik5

New member
אתה צריך לבדוק האם יש ערך

בכלל במשתנה בצורה הזאת:
if (isset($var)) { .... }​
אם זה מחזיר ערך שלילי אז הוא לא יבצע לך את הבדיקה של האם זה מספר... אבל אם היה משהו בelse אז אולי הוא היה מציג לך משהו, אבל מוזר שהוא לא מרים הודעה על זה (אלא אם הורדת את ההכזרה על שגיאות).
 

kensaggy

New member
מממ..

בטח שאם אתה בודק 4.6 (או כל מספר אם נקודה) זה לא עובד!
אתה משתמש בפונק' is_int..ומספר אם נקודה זה float... נסה is_float.. http://il.php.net/manual/en/function.is-float.php בהצלחה, חן.
 

kensaggy

New member
נסה את זה..

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

Mr Boggy Man

New member
כן אני בודק שזה עם ערך כלשהו לפני

ותודה kensaggi, אני אבדוק את העניין
 
למעלה