عند إنشاء فصولي الخاصة في PHP، هل يجب أن أقوم بتوسيع stdClass؟

StackOverflow https://stackoverflow.com//questions/23045119

  •  21-12-2019
  •  | 
  •  

سؤال

في حين أنه ليس من الضروري أن يتم توسيع الفصل في PHP بشكل صريح stdClass, ، كنت أتساءل عما إذا كان هناك نوع من أفضل الممارسات أو الفوائد في القيام بذلك.

هل يجب أن أمد stdClass عند اعلان الفصل ؟

للرجوع إليها، انظر ما هو stdClass في PHP؟ و بي أتش بي:الكائنات، تحويل إلى كائن.

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

المحلول

StdClass فارغ وبالتالي ليس لديك أي فائدة في تمديده.

أنت فقط تضيع extend في الخاص بك __CLASS__˙.

php --rc StdClass
Class [ <internal:Core> class stdClass ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [0] {
  }
}

السبب الوحيد للتمديد stdClass هو تلبية تلميح كتابة ضد هذه الفئة - ومع ذلك، لا ينبغي أبدًا استخدام مثل هذا التلميح، لأن هذه نقطة خلافية.

نصائح أخرى

لا

هناك استخدام ممتع واحد لتوسيع stdClass:سيعود ($object مثيل stdClass) صحيحًا وهو أسرع بثلاث مرات من is_object($object).نحن نتحدث 1 مجهريالفرق الثاني، على الرغم من ذلك، ولسوء الحظ، ما لم تجعلها سياسة صارمة طوال المشروع، فمن الممكن أن تصبح غير متماسكة بسهولة وبالتالي أكثر إرباكًا من المساعدة.في الواقع، أشعر بخيبة أمل عندما علمت أن فئات PHP لا تقوم بتوسيع stdClass افتراضيًا.سيكون من المنطقي بالنسبة لي.

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