, मैं एक विशेष वस्तु एक अंतरफलक को लागू करता है, तो देखने के लिए जाँच होगी:PHPUnit, मज़ाक उड़ाया इंटरफेस, और instanceof
if ($instance instanceof Interface) {};
हालांकि, PHPUnit में कहा इंटरफ़ेस का mocks बनाने, मैं नहीं कर सकता प्रतीत होता है कि परीक्षा उत्तीर्ण हो रही है।
// class name is Mock_Interface_431469d7, does not pass above check
$instance = $this->getMock('Interface');
मैं समझता हूँ कि एक वर्ग नामित इंटरफ़ेस होने एक वर्ग इंटरफ़ेस को लागू करने से अलग है, लेकिन मुझे यकीन है कि कैसे इस के साथ सौदा पाने के लिए नहीं कर रहा हूँ।
क्या मुझे इंटरफ़ेस लागू करने वाली ठोस कक्षा का नकल करने के लिए मजबूर होना पड़ा? क्या पोर्टेबिलिटी के लिए इंटरफ़ेस का उपयोग करने के उद्देश्य को नुकसान नहीं पहुंचाएगा?
धन्यवाद
हाँ, कूलर सिर प्रबल। पूरी नींद की रात के बाद, मुझे एहसास हुआ कि ऑब्जेक्ट का मज़ाक उड़ाते समय मैं पूरी तरह योग्य नामस्थान का उपयोग नहीं कर रहा था। –
थोड़ा अलग उपयोग केस, लेकिन क्या मैं जांच सकता हूं कि एक उदाहरण कक्षा के एक वर्ग या कक्षा का एक उदाहरण है। – kapad
@ कपाड आप देखते हैं, यह पॉलिमॉर्फिज्म का मुख्य बिंदु है कि आपको यह पता नहीं होना चाहिए कि वर्तमान वस्तु क्या है या वर्ग या नकली का उदाहरण है। अगर आपको अभी भी पता होना चाहिए, तो आप कुछ गलत करते हैं। पीएस बस FYI आप ऑब्जेक्ट – dVaffection