خوب شد گفتی. شما اصلا به این نکته توجه نکردی که یک کار استاندارد که به صورت کامپوننت در میاد در اصل به همین صورت که یکی کلاس رو می نویسه دیگران ازش استفاده می کننداونی که داخل کلاس رو نوشته، خودش خارج کلاس رو نوشته.... پس در استفاده از متغیر در خارج از کلاس، اختیار تام داره
به عنوان مثال : PEAR,ZF,....
من که نفهمیدم چرا اینو گفتی .بحثش بحث امنیت نیست . اصلا محافظتی در کار نیست
اگه بحث امنیت نیست پس بحث چیه ؟
فقط نظم ! یعنی سیستم های ساخت یافته نظم نداشتند که شی گرایی با n تا مزیتش ( ازجمه همین Private) امودن تا نظم برقرار کنن ؟ البته این یک از اهدافش هست .اما بهتره بدونید که تعریف متغییر ها و متد های Public,private,.. در امنیت برنامه نقش بسزایی داره
یک از دلایلش اینه که متغییر های خصوصی به محض تموم شدن عمرشون از حافظه خارج میشن . اصولا متغییر های خصوصی در حافظه پشته تعریف میشن و به محض تمام شدن دوره عمرشون از حافظه خارج می شن . اینستنت ها و پابلیک ها در حافظه هیپ و البته قابل دسرسی خواهند بود البته در اغلب موارد در این قسمت از حافظه پابلیک های زیادی هست که میشه دسترسی بهشون رو باز سازی کرد و ازشون استفاده کرد.
بماند که پی اچ پی متاسفانه هنوز کاملا از مفاهیم شیگرایی پشتیبانی نمی کنه و لی این واقعیت هایی که گفتم در تمام سیستم های واقعا شی گرا وجود داره .
؟البته نمیشه گفت امنیت کد بالاتر میره. چون به هر حال سورس کلاس پدر هم در دسترس هست.