📘 الدرس 4: المتغيرات وأنواع البيانات في PHP بشكل موسع
المتغيرات Variables هي الصندوق اللي تخزن فيه أي بيانات في PHP. اسم، عمر، سعر، قائمة منتجات، كلها تتخزن في متغير. فهمك للمتغيرات وأنواع البيانات = فهمك لنص لغة PHP.
1. لازم تبدأ بعلامة
$2. أول حرف بعد $ لازم يكون حرف أو _
3. ما تحتوي مسافات أو رموز خاصة غير _
4. حساسة لحالة الأحرف:
$name ≠ $Name
🔹 1. المتغيرات النصية String
تخزن النصوص والكلام. تكتب بين علامات تنصيص مفردة ' ' أو مزدوجة ".
مثال عملي:
$name = "الحسام";
$message = 'مرحباً بك في مدونة الحسام';
echo "مرحباً، اسمي $name"; // مرحباً، اسمي الحسام
echo 'مرحباً، اسمي $name'; // مرحباً، اسمي $name - ما تفسر المتغير
?>
النص المزدوج " يفسر المتغيرات داخله.
النص المفرد ' يعامل كل شيء كنص حرفي أسرع وأخف.
🔹 2. الأعداد الصحيحة Integer
أرقام بدون فاصلة عشرية. سالبة أو موجبة أو صفر.
مثال عملي:
$age = 25;
$year = 2026;
$negative = -50;
echo "العمر: $age، السنة: $year";
echo "نتيجة العملية: ". ($age + 5);
?>
الاستخدام: العمر، عدد المنتجات، رقم الصفحة، العدادات.
🔹 3. الأعداد العشرية Float / Double
أرقام فيها فاصلة عشرية. تستخدم للفلوس والنسب المئوية.
مثال عملي:
$price = 99.99;
$tax = 0.15;
$discount = 10.5;
$total = $price + ($price * $tax);
$final = $total - $discount;
echo "السعر النهائي: ". round($final, 2). " ريال";
?>
round($num, 2) لتقريب الرقم لخانتين عشريتين، مهم في الحسابات المالية.
🔹 4. القيم المنطقية Boolean
تخزن قيمتين فقط: true أو false. تستخدم للتحكم في سير البرنامج.
مثال عملي:
$isActive = true;
$isLoggedIn = false;
$hasPermission = true;
if($isActive && $isLoggedIn){
echo "مرحباً بك في لوحة التحكم";
}else{
echo "يرجى تسجيل الدخول أولاً";
}
?>
الاستخدام: حالة المستخدم، تفعيل/تعطيل الميزة، صلاحيات الوصول.
🔹 5. المصفوفات Array
تخزن مجموعة قيم في متغير واحد. راجع الدرس 9 للتفصيل، لكن هذا الأساس.
مثال عملي:
// مصفوفة مفهرسة
$fruits = array("تفاح", "موز", "برتقال");
// أو بالطريقة المختصرة
$fruits = ["تفاح", "موز", "برتقال"];
echo "الفاكهة الأولى: ". $fruits[0]; // تفاح
// مصفوفة ترابطية
$user = ["name" => "حسام", "age" => 25, "city" => "صنعاء"];
echo "الاسم: ". $user["name"];
?>
🔹 6. القيمة الفارغة NULL
تعني المتغير موجود لكن ما له قيمة. تختلف عن 0 وعن "" الفارغ.
مثال عملي:
$user = NULL;
if($user === NULL){
echo "المستخدم غير موجود";
}
// إعادة تعيين القيمة
$user = "حسام";
?>
الاستخدام: تهيئة المتغير قبل الاستخدام، مسح قيمة متغير، التعامل مع البيانات المفقودة من قاعدة البيانات.
🔹 7. أنواع أخرى مهمة
Resource - المورد
نوع خاص يمثل اتصال بقاعدة البيانات أو ملف أو صورة.
$file = fopen("file.txt", "r");
var_dump($file); // resource
fclose($file);
?>
Object - الكائن
نتيجة استخدام الكلاسات OOP.
class User { public $name = "حسام"; }
$user = new User();
echo $user->name; // حسام
?>
🔹 8. التحقق من نوع المتغير
PHP لغة ديناميكية تغير النوع تلقائياً، لكن أحياناً تحتاج تتأكد من النوع.
| الدالة | الوظيفة | مثال |
|---|---|---|
gettype() | ترجع نوع المتغير كنص | gettype($age) // integer |
is_string() | هل هو نص؟ | is_string($name) |
is_int() | هل هو عدد صحيح؟ | is_int($age) |
is_float() | هل هو عدد عشري؟ | is_float($price) |
is_bool() | هل هو منطقي؟ | is_bool($active) |
is_array() | هل هو مصفوفة؟ | is_array($fruits) |
is_null() | هل هو NULL؟ | is_null($user) |
isset() | هل المتغير معرف وله قيمة؟ | isset($name) |
مثال عملي:
$name = "حسام";
$age = 25;
if(is_string($name)){
echo "الاسم نص صحيح";
}
if(isset($age) && is_int($age)){
echo "العمر صحيح: $age";
}
var_dump(gettype($age)); // string: integer
?>
🔹 9. تحويل أنواع البيانات Type Casting
تحويل المتغير من نوع لنوع آخر يدوياً.
مثال عملي:
$num = "25"; // نص
$num = (int)$num; // حوله لعدد صحيح
$price = "99.99";
$price = (float)$price; // حوله لعشري
$status = 1;
$status = (bool)$status; // true
$name = 123;
$name = (string)$name; // "123"
?>
🔹 10. مثال عملي شامل: نموذج تسجيل مستخدم
$name = "حسام الفقيه";
$age = 25;
$email = "hossam@example.com";
$isActive = true;
$skills = ["PHP", "HTML", "CSS"];
echo "<h3>بيانات المستخدم</h3>";
echo "الاسم: $name <br>";
echo "العمر: $age سنة <br>";
echo "الإيميل: $email <br>";
echo "الحالة: ". ($isActive? "مفعل" : "غير مفعل"). " <br>";
echo "المهارات: ";
foreach($skills as $skill){
echo "$skill, ";
}
?>
🔹 الخلاصة
| النوع | مثال | الاستخدام |
|---|---|---|
| String | "حسام" | النصوص والأسماء |
| Integer | 25 | الأعداد الصحيحة |
| Float | 99.99 | الأرقام العشرية والفلوس |
| Boolean | true/false | الحالات والشروط |
| Array | ["a", "b"] | القوائم والمجموعات |
| NULL | NULL | القيمة الفارغة |
© جميع الحقوق محفوظة - مدونة الحسام | al-hassam.blogspot.com
