PHP: تدمير كائن من داخل كائن؟
سؤال
هل هناك طريقة في PHP لتدمير كائن من داخل هذا الكائن نفسه؟
المحلول
وهناك وسيلة للالتدمير الذاتي كائن:
استخدم مجموعة $GLOBALS
العثور على مثيل في ذلك، ثم استخدام unset()
. كن على علم بأن unset()
لا تدعو تلقائيا __destruct()
طريقة السحر في كل وقت ...
وهناك مثل مذكرة بهذه الطريقة (راجع وثائق unset()
) في وثائق PHP، ولكنه لا يفسر بالضبط عندما unset()
لا استدعاء الأسلوب __destruct()
.
وكان هذا سلوك معين:
وأفعل:
unset($myInstance);
$myInstance = clone $otherInstance;
ويسمى __constructor
أولا، ثم __destruct()
. أو أود أن __destruct()
أن يكون أول من دعا لunset()
هو قبل استنساخ ...
أماه أنا عالقة مع ذلك الآن ...
ونيكولا.
نصائح أخرى
إذا يسمى الأسلوب في سياق الكائن ثم يجب أن يكون هناك مرجع واحد على الأقل لهذا الكائن. ومنذ فب يزيل فقط كائنات غير قابلة للوصول الجواب: لا
لا، أنا لا أعتقد أن هناك. ولكن قد تحتاج شيء من هذا القبيل؟