--- A.php ----
require_once 'B.php';
class A
{
public function __constructor($x){...}
public function foo()
{
$b = B::getInstance();
...
}
}
--- B.php ----
require_once 'A.php';
class B extends A
{
protected static $_instance = null;
protected function __construct(){}
public static function getInstance()
{....}
}
पीएचपी बस जैसे ही यह लाइनसंरक्षक को संरक्षित या निजी के रूप में परिभाषित नहीं कर सकता! क्यूं कर?
protected function __construct(){}
तक पहुँच जाता है और इससे पहले कि और कुछ भी नहीं है कि बाद में ब्राउज़र को भेज दिया गया होता सब कुछ आउटपुट कोड की व्याख्या बंद हो जाता है।
और जैसे ही मैं सिर्फ
के लिए बाहर है कि लाइन ले, उसे बदल कर// protected function __construct(){}
सब कुछ ठीक काम करता है !?
मुझे वह नहीं मिला।
कोई विचार?
आप फ़ाइलों, जैसे में php उद्घाटन टैग है क्या वे ' php' से शुरू होते हैं। क्या आप सीएलआई से 'php -l एएफपी' और' php -l bphp' चला सकते हैं यह देखने के लिए कि क्या यह कोई पार्सिंग त्रुटियां देता है? – Gordon
__construct() विधि को सार्वजनिक होने की आवश्यकता होगी क्योंकि इसे कक्षा के उदाहरण के दौरान (सार्वजनिक रूप से) एक्सेस किया जाता है। –
आपके छद्म कोड में कोई स्पष्ट समस्या नहीं है, इसलिए आपके वास्तविक कोड में समस्याएं सबसे अधिक संभावना हैं। यदि PHP चलना बंद कर देता है और कोई त्रुटि संदेश प्रदर्शित नहीं करता है, तो आपको शायद पूर्ण त्रुटि रिपोर्टिंग सक्षम करने की आवश्यकता है। यदि आप नहीं जानते हैं तो विवरण के लिए पूछने के लिए स्वतंत्र महसूस करें। –