شعوذة النوع المتغير (شعوذة) PHP لا تتطلب (أو لا تدعم) الإعلان عن متغير لتحديد نوع المتغير الخاص به؛ يتم تحديد نوع المتغير من خلال السياق الذي يتم فيه استخدام المتغير، أي إذا قمت بإعطاء متغير إذا تم تعيين قيمة سلسلة لـ var، فسيصبح var متغير سلسلة. إذا قمت بتعيين عدد صحيح إلى var، فإنه يصبح متغيرًا صحيحًا. مثال على قيام PHP بتحويل أنواع المتغيرات تلقائيًا هو عامل الإضافة "+". إذا كان أي معامل مزدوجًا، فسيتم تقييم جميع المعاملات على أنها مزدوجة، وتكون النتيجة أيضًا مزدوجة. وبخلاف ذلك، سيتم اعتبار المعاملات أعدادًا صحيحة وستكون النتيجة عددًا صحيحًا. لاحظ أن هذا لا يؤثر على نوع المتغير لكل معامل نفسه، والتغيير الوحيد هو كيفية معالجة المعاملات أثناء الحساب. |
|
إذا كنت تعتقد أن التعبيرين الأخيرين في المثال أعلاه يبدوان غريبين بعض الشيء، فيرجى مراجعة قسم "تحويل السلسلة". إذا كنت ترغب في فرض تقييم متغير كنوع ثابت، راجع قسم "التحويل". إذا كنت ترغب في تغيير نوع المتغير، يرجى الاطلاع على وصف الوظيفة "settype()". تحديد نوع المتغير نظرًا لأن لغة PHP تحدد نوع المتغيرات بنفسها وتقوم عمومًا بصياغتها حسب الحاجة، فإن نوع متغير معين ليس واضحًا دائمًا. يتضمن PHP وظائف لمعرفة نوع هذا المتغير. هذهالوظائف هي gettype() وis_long() وis_double()و is_string() وis_array() وis_object() بين قوسين قبل المتغير الذي سيتم إكراهه. |
|
يُسمح بطرق الإكراه التالية: (int)، (عدد صحيح) - الإكراه على عدد صحيح (حقيقي)، (مزدوج)، (تعويم) - الإكراه على الدقة المزدوجة (سلسلة) - الإكراه على السلسلة (مصفوفة) - الإكراه على صفيف (كائن) ) - تم فرضه على كائن. لاحظ أن علامات التبويب والمسافات مسموح بها بين قوسين، وبالتالي فإن العبارات التالية متكافئة: $foo= (int) $bar; $foo =( int) $bar; قيمة رقمية، ويتم تحديد نتيجتها ونوعها كما هو موضح أدناه. إذا كانت هذه السلسلة تحتوي على الأحرف "."، أو "e"، أو "E"، فسيتم التعامل معها كمتغير مزدوج النوع، وإلا فسيتم التعامل معها على أنها عدد صحيح. يتم تحديد قيمة هذه السلسلة بواسطة البادئة. إذا كانت السلسلة تبدأ بأي بيانات رقمية صالحة، فإن البيانات الرقمية هي القيمة التي يتم تقييم السلسلة بناءً عليها. وإلا فإن القيمة صفر. تتبع البيانات الرقمية الصالحة الترميز التالي، متبوعًا برقم واحد أو أكثر (قد يتضمن علامة عشرية)، متبوعًا بأس اختياري. يتكون الأس من رقم واحد أو أكثر متبوعًا بـ "e" أو "E". |
|
لمزيد من المعلومات، راجع قسم دليل يونكس على strtod(3). |