तो, अगर आप इस तरह एक नेस्टेड वर्ग करने की कोशिश:PHP नेस्टेड कक्षाएं काम ... तरह का?
//nestedtest.php
class nestedTest{
function test(){
class E extends Exception{}
throw new E;
}
}
आपको एक त्रुटि Fatal error: Class declarations may not be nested in [...]
मिल जाएगा, लेकिन आप तो जैसे एक अलग फ़ाइल में एक वर्ग है, तो:
//nestedtest2.php
class nestedTest2{
function test(){
include('e.php');
throw new E;
}
}
//e.php
class E Extends Exception{}
तो, ऐसा करने का दूसरा हैकी तरीका क्यों काम करता है, लेकिन ऐसा करने का गैर-हैकी तरीका काम नहीं करता है?
+1 को पता नहीं था कि – soulmerge
तो, उनके पास वैश्विक दायरा है, और मैं सभी को कॉल कर सकता हूं निजी और संरक्षित कार्यों में कक्षा है ... – SeanJA
@ सेनजा: क्योंकि उनके पास वैश्विक दायरा है, आप कक्षा के उन गैर-सार्वजनिक तरीकों को कॉल करने में सक्षम नहीं होंगे जिनमें शामिल हैं() –