परीक्षण करने का सबसे अच्छा तरीका परीक्षण करना है।
हालांकि सरल जवाब यह है कि __destruct कचरा सफाई के दौरान बुलाया जाता है। मोटे जो किसी को भी कचरा सफाई के रूप में मदद नहीं करता है, एक चल रही प्रक्रिया है जो स्थानीय चर को साफ करती है जब उन्हें कोई कॉल नहीं होता है।
हालांकि यहां कुछ नमूना कोड है, और नतीजा यह बताता है कि स्क्रिप्ट में आंतरिक रूप से दायरे से बाहर निकलने पर क्या होता है।
<?php
class testingdestructor {
public function __construct($num) {
$this->num = $num;
}
public function __destruct() {
echo "I am number {$this->num}\n";
}
}
class testing2{
public function __construct($num) {
$this->classtest = new testingdestructor($num);
}
public function __destruct() {
echo "I am not a number\n";
}
}
$iam1 = new testingdestructor(1);
$iam4 = new testing2(4);
function testfunction() {
$iam2 = new testingdestructor(2);
}
testfunction();
$iam3 = new testingdestructor(3);
unset($iam1);
कक्षाएं समारोह की यह अजीब सेट के उत्पादन और वार्स इस
I am number 2
I am number 1
I am number 3
I am not a number
I am number 4
यह हमें पता चलता है कि समारोह के अंत __destruct कॉल के रूप में सेट नहीं करता है, और कहा कि कम से कम व्यवहार में स्क्रिप्ट क्लीनअप का अंत बनाया गया रिवर्स ऑर्डर में किया जाता है।
कहा जाता है जब स्क्रिप्ट समाप्त हो जाती है (शट डाउन अनुक्रम के दौरान)। –
पहले स्रोत पर जाएं: php manual .. उद्धरण: "विनाशक विधि को जल्द से जल्द कहा जाएगा जैसे किसी विशेष वस्तु के लिए कोई अन्य संदर्भ नहीं है, या शट डाउन अनुक्रम के दौरान किसी भी क्रम में" तो जब आप इसका उपयोग नहीं करेंगे या लिपि समाप्त होती है/यह मारे जाती है। http://www.php.net/manual/en/language.oop5.decon.php – mishu