النتائج 1 إلى 9 من 9

الموضوع: php مفهوم type casting

  1. #1
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    309

    php مفهوم type casting



    php مفهوم type casting
    هي باختصار كيفية تغيير نوع البيانات من نوع الي نوع اخر وقت البرمجة بدون التقيد بنوع معين وبدون التغيير في قيمتها الا في حالات معينة فقط.
    للتوضيح
    كود PHP:
    $array = array('bruce'=>'php'); 
    للوصول الي عنصر المصفوفة بهذة الطريقة
    كود PHP:
    print $array['bruce']; 
    في حالة تغيير النوع type الي object تكون هكذا
    كود PHP:
    $array = (object) array('bruce'=>'php'); 
    للوصول الي عنصر المصوفة
    كود PHP:
    print $array->bruce
    وهكذا ايضا
    كود PHP:
    $value 33.3//float 
    عند تمرير الـ int type تصبح
    كود PHP:
    $value = (int) 33.3//output 33 
    سيقوم بتجاهل الجزء الكسري.

    انواع الـ البيانات
    • (int), (integer) - cast to integer
    • (bool), (boolean) - cast to boolean
    • (float), (double), (real) - cast to float
    • (string) - cast to string
    • (array) - cast to array
    • (object) - cast to object
    • (unset) - cast to NULL (PHP 5)

    الطريقة مفيدة جدا في الاستخدام وبما ان php لغة loosely typed language يمكن استخدامها بحرية جدا داخل تطبيقاتك.
    اي سؤال او استفسار هن الموضوع
    المصدر مدونتي
    ( رابط ) http://www.developer.ly/article-10.html





    __________________
    Bruce - مدونة شديدة التخصص في PHP وتطبيقات الويب


  2. #2
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    بارك الله فيك على الدرس الرائع

    لم اكن اتوقع ان التحويل من مصفوفة إلى كائن يتم بهذه البساطة

    اثراءً للموضوع سأضع كل ما اعرف من دوال لتغيير صيغ المعلومات في php

    مصفوفة ل json
    http://php.net/manual/en/function.json-encode.php
    json لمصفوفة:
    http://www.php.net/manual/en/function.json-decode.php

    تحويل مصفوفة ل url query
    http://www.php.net/manual/en/functio...uild-query.php

    مصفوفة ل simple xml
    طريقة رااائعة وجدتها في موقع stack overflow
    كود PHP:
    <?php

    $test_array 
    = array (
      
    'bla' => 'blub',
      
    'foo' => 'bar',
      
    'another_array' => array (
        
    'stack' => 'overflow',
      ),
    );
    $xml = new SimpleXMLElement('<root/>');
    array_walk_recursive($test_array, array ($xml'addChild'));
    print 
    $xml->asXML();
    هناك ايضًا انواع كائنات اخرى غير الانواع البسيطة في مكتبة spl
    http://php.net/manual/en/book.spl.php






  3. #3
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    65


    موضوع جميل واضافه على ذلك
    يستخدم الكاستينق خاصية التبديل مع الكائنات بشرط ان يكونوا سب تايب (subtype) وليكون سب تايب يكون بالشكل التالي

    ولكن لا اعتقد انها متوافره مع لغة البي اتش بي حتى الان واتمنى ان يتم اضافتها لتزيدها قوة كلغة برمجة





    __________________
    سوق الكويت

  4. #4
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    موضوع جميل واضافه على ذلك
    يستخدم الكاستينق خاصية التبديل مع الكائنات بشرط ان يكونوا سب تايب (subtype) وليكون سب تايب يكون بالشكل التالي

    ولكن لا اعتقد انها متوافره مع لغة البي اتش بي حتى الان واتمنى ان يتم اضافتها لتزيدها قوة كلغة برمجة
    هذا على ما اعتقد ما يسمى ال downcasting
    واستعمال اكثر من نوع ترث من اب واحد في مصفوفة واحدة يسمى polymorphism

    ان تم ادخال هذا التعديل سوف تتعقد اللغة كثيرًا(لأنه سوف يتم تحديد انواع المتغيرات)
    وبذلك تفقد افضليتها على باقي اللغات






  5. #5
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    65


    اختلف معاك بهذا الرأي
    من وجهة نظري سوف تزيد من قوتها وصلابتها وسوف تصبح كمثيلاتها java c++
    وتكون strongly typed language





    __________________
    سوق الكويت

  6. #6
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,516


    استخدام int مهم جداً لحماية المعلومات ... بالاضافة الى in_array
    مثال:
    لو لديك قرائة لقاعدة البيانات تعتمد على متغير خارجي مثل اظهار موضوع معين
    select * from post where post_id = $_GET['post_id']
    ففي هذه الحالة انت تضع نفسك على بساط من ريح لاقتحام موقعك حيث ان قيمة
    $_GET['post_id']
    يمكن ان تحتوي على امر آخر لاستدعاء بيانات اخرى
    واضافة (int) اليه سوف تضمن تحويل اي معلومة الى رقم - وفي حال ادخال جملة نصية سوف يتم تحويلتها الى الرقم صفر

    والأمر الثاني ال in_array فهو ايضاً يضمن ان يكون المدخل الخارجي معروف مسبقاً ولا يسمح بشئ آخر غيره





    __________________
    أحب سوالف ولا احب الجدليين!
    اسماء اولاد وبنات http://muslim-names.us
    1000 مزاد http://1000mazad.com
    موقع نكت سعوديةhttp://arab-jokes.net

  7. #7
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    309


    نعم لكن في حالة تم جعل التعريف المتغيرات في بداية البرمجة مثل C وغيرها

    سيتم ايضا تحديد الحجم وسيتم اضافة خاصية الحجز الديناميكي وغيرها الخ...

    جميل جدا ان نناقش مواضيع في لب البرمجة هل من مزيد؟؟؟

    سلام





    __________________
    Bruce - مدونة شديدة التخصص في PHP وتطبيقات الويب

  8. #8
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    اختلف معاك بهذا الرأي
    من وجهة نظري سوف تزيد من قوتها وصلابتها وسوف تصبح كمثيلاتها java c++
    وتكون strongly typed language
    ولكن ال php تختلف عن c++\java وهي ليست من مثيلاتها، لأن ال php هي عبارة عن
    scripting language ، كما انها لا تعمل كومبايل ،وتضع السهولة في اول اهتماماتها
    يعني كنت طفشان اجا على بالك تعمل كود، ممكن تعمله بسهولة مع php بدون تعقيدات الجافا

    هذا التغيير ان حدث يسلتزم تغيير اللغة بأكلمها

    كما ان اللغة تحوي بعض الادوات الاساسية كما ذكر مصالحة

    على فكرة sun لها لغة سكربت اسمها groovy ولكنها ضخمة وعقيمة في بعض الاحيان مثل الجافا SE





    التعديل الأخير تم بواسطة ahmad sadiq ; 08-08-2010 الساعة 02:51 AM

  9. #9
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    65


    وجهة نظر ويجب احترامها

    شكرا لك اخي الكريم





    __________________
    سوق الكويت





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض