سؤال

هل هناك طريقة المدمج في معرفة ما إذا كان المتغير دورة معينة هو كائن تسلسل؟ أقول استرداد قيمة مثل $ _SESSION [ 'فو']، ولكن أنا لا أعرف ما إذا كان في الأصل سلسلة أو إذا كان هو كائن المتسلسلة. هل هناك طريقة للتأكد، أو مرة واحدة تسلسل لا PHP انظر فقط سلسلة كسلسلة كسلسلة؟

هل كانت مفيدة؟

المحلول

وانها فكرة خاطئة مفادها جدا التي لديك لتسلسل الأشياء يدويا قبل وضعها في الدورة. ليس هذا هو الحال. يمكنك ببساطة تعيين مثيل كائن إلى فتحة في $_SESSION، وسوف PHP تسلسل التلقائى وunserialize لانها لكم، بين الطلبات.

نصائح أخرى

وسلسلة هي السلسلة عبارة عن سلسلة. أعتقد أن أفضل عليك أن تكون قادرة على القيام به هو مجرد محاولة لunserialize ذلك، وإذا كان يعمل، يعمل. إذا لم يحدث ذلك، فإنه لا يفعل ذلك.

والخيار الآخر الوحيد سيكون لاستخدام التعابير المنطقية لمعرفة ما اذا كان "يبدو" وكأنه كائن المتسلسلة. تشغيل فقط unserialize() على أنه قد يكون من الأسهل على الرغم من.

هل يمكن استخدام is_a ... تسحبه من الدورة وانظر، أنت فقط بحاجة الى معرفة اسم_الفئة للتحقق من.

if (is_a($_SESSION['foo'], 'UserInfoObject')) {
  // We have one
}

ويبدو PHP5 لديه أسهل طريقة:

if ($_SESSION['foo'] instanceof UserInfoObject) {
      // We have one
}

http://www.php.net/manual/en /function.is-a.php

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top