PHP תומכת בשמונה סוגי נתונים.
ארבעה סוגים סקלרים (בסיסיים, שלא ניתן לפצלם לחלקים): types:
שני סוגים מורכבים: ולבסוף, שני סוגים מיוחדים:הערה: במדריך זה תמצא לעיתים קרובות פרמטרים אשר מסומנים ב-mixed, mixed הוא לא סוג אמיתי, אלא מילה המציינת שבמקומה יכולים לבוא סוגים שונים.
בדרך כלל סוג המשתנה אינו נקבע על ידי המתכנת, אלא נקבע על ידי PHP בזמן עיבוד הקובץ, על פי השימוש במשתנה.
הערה: על מנת לבדוק את סוג וערך המשתנה בביטוי יש להשתמש בפונקציה var_dump().
על מנת לקבל את סוג המשתנה בפורמט קריא, למטרות ניפוי באגים, יש להשתמש בפונקציה gettype(). כדי לבדוק אם משתנה הוא מסוג מסויים, אין להשתמש בפונקציה gettype() אלא בפונקציות is_type.
בשביל לשנות סוג של משתנה, ניתן להשתמש בהמרה (cast) או להשתמש בפונקציית settype().
משתנים עלולים להתנהג באופן שונה, במצבים מסויימים, על פי הסוג שהם שייכים אליו באותו הזמן. למידע נוסף, ראה הפרק על מעבר בין סוגים.