🚀 احتراف تحويل أنواع البيانات Casting في PHP

في الدروس السابقة، عرفنا أن لغة PHP هي لغة "مرنة" في التعامل مع أنواع البيانات (Loosely Typed Language)، وهذا يعني أن PHP تحاول غالباً تخمين نوع البيانات تلقائياً.

ولكن، ماذا لو كنت تريد إجبار PHP على التعامل مع قيمة معينة كنوع محدد؟ هنا يأتي دور ما نسميه Casting. 🎯


🧐 ما هو الـ Casting؟

ببساطة، الـ Casting هو عملية تحويل قيمة من "نوع بيانات" إلى "نوع بيانات آخر".

على سبيل المثال: إذا كان لديك رقم مكتوب داخل نص "100" وتريد إجراء عمليات حسابية عليه كـ "عدد صحيح"، يمكنك تحويله من string (نص) إلى int (عدد صحيح).

لماذا نحتاج الـ Casting؟

  1. لضمان دقة العمليات الحسابية.
  2. عند استقبال بيانات من المستخدم (التي تأتي غالباً كنصوص) والرغبة في تخزينها كأرقام.
  3. لتجنب الأخطاء غير المتوقعة عند دمج البيانات.

🛠️ كيف نقوم بعملية الـ Casting في PHP؟

للقيام بعملية التحويل، نقوم بكتابة النوع الذي نريد التحويل إليه بين قوسين () قبل المتغير مباشرة.

1. التحويل إلى عدد صحيح (int) أو (integer) 🔢

نستخدم هذه الطريقة عندما نريد تحويل قيمة (سواء كانت نصاً أو رقماً عشرياً) إلى عدد صحيح (بدون فاصلة).

مثال برمجي:

<?php
$price = "25.50"; // This is a string (نص)

// Convert string to integer (تحويل النص إلى عدد صحيح)
$integerPrice = (int)$price; 

echo $integerPrice; // Output: 25
?>

لاحظ هنا أن PHP قامت بحذف الكسور وأبقت على الرقم الصحيح فقط.


2. التحويل إلى عدد عشري (float) أو (double) 📉

نستخدم هذه الطريقة عندما نريد التأكد من أن القيمة رقمية وتدعم الكسور.

مثال برمجي:

<?php
$score = "85.75"; // This is a string (نص)

// Convert string to float (تحويل النص إلى عدد عشري)
$floatScore = (float)$score;

echo $floatScore; // Output: 85.75
?>

3. التحويل إلى نص (string) 📝

هذه العملية تحول أي قيمة (سواء كانت رقماً أو قيمة منطقية) إلى نص يمكن طباعته أو دمجه مع نصوص أخرى.

مثال برمجي:

<?php
$userId = 1024; // This is an integer (عدد صحيح)

// Convert integer to string (تحويل العدد إلى نص)
$stringId = (string)$userId;

echo "The user ID is: " . $stringId; // Output: The user ID is: 1024
?>

4. التحويل إلى قيمة منطقية (bool) أو (boolean) ✅❌

هذه العملية تحول القيمة إلى إما true (صواب) أو false (خطأ).

قاعدة ذهبية في PHP:

  • أي قيمة "فارغة" أو "صفر" تتحول إلى false.
  • أي قيمة "موجودة" أو "غير صفرية" تتحول إلى true.

مثال برمجي:

<?php
$isActive = 1; // Integer 1
$isEmpty = 0;   // Integer 0
$name = "Codex"; // String

// Conversion (عمليات التحويل)
$boolActive = (bool)$isActive; // Result: true
$boolEmpty = (bool)$isEmpty;   // Result: false
$boolName = (bool)$name;       // Result: true

var_dump($boolActive); // Output: bool(true)
var_dump($boolEmpty);  // Output: bool(false)
?>

⚠️ ملخص سريع لعمليات الـ Casting

النوع المراد التحويل إليه الكود المستخدم مثال بسيط النتيجة
عدد صحيح (int) (int)"10.5" 10
عدد عشري (float) (float)"10.5" 10.5
نص (string) (string)50 "50"
قيمة منطقية (bool) (bool)0 false

💡 نصيحة تقنية

تذكر دائماً أن الـ Casting عملية "قسرية"، أي أنك تخبر PHP صراحةً: "أنا أعرف ما أفعل، حولي هذا المتغير إلى هذا النوع". استخدمها بحذر خاصة عند تحويل الأرقام العشرية إلى صحيحة لأنك ستفقد الكسور! 📉