PDA

View Full Version : سوال: آیا (از نظر استاندرد کد نویسی) می تونیم یه خصلت رو توی یه متد اعلان کنیم؟



idocsidocs
دوشنبه 08 اسفند 1390, 15:32 عصر
الان من یه کلاس ارم که اگر بخوام همه خصلتها رو در ابتدای کلاس اعلان کنم باید 20-30 تا خصلت رو با هم اعلان کنم و فقط از 2 تا از این خصلت ها توی هر متد استفاده می کنم.

آیا (از نظر استاندرد کد نویسی) می تونیم یه خصلت رو توی یه متد اعلان کنیم؟

MMSHFE
دوشنبه 08 اسفند 1390, 18:48 عصر
دوست گرامی، سازنده های کلاس بطور پیشفرض تمام فیلدها رو مقداردهی اولیه میکنن. حتی اگه لازم باشه، با NULL
بنابراین درهرحال مقداردهی در زمان ایجاد شئ از کلاس انجام میشه. حالا اگه خیلی نیاز به استفاده خاص از صرفاً یک یا دو مقدار دارین، میتونید اونها رو Static تعریف کنید. با تعریف متدهای یک کلاس از نوع Static هم میتونید توسط نام کلاس، بدون ایجاد شئ، از اون متد استفاده کنید. طبیعتاً در این حالت، سازنده فراخوانی نمیشه و مقداردهی به تمامی عناصر کلاس هم انجام نخواهد شد.
موفق باشید.

idocsidocs
دوشنبه 08 اسفند 1390, 19:01 عصر
بنابراین درهرحال مقداردهی در زمان ایجاد شئ از کلاس انجام میشه. حالا اگه خیلی نیاز به استفاده خاص از صرفاً یک یا دو مقدار دارین، میتونید اونها رو Static تعریف کنید. با تعریف متدهای یک کلاس از نوع Static هم میتونید توسط نام کلاس، بدون ایجاد شئ، از اون متد استفاده کنید. طبیعتاً در این حالت، سازنده فراخوانی نمیشه و مقداردهی به تمامی عناصر کلاس هم انجام نخواهد شد.من از یه معماری سه لایه استفاده می کنم و کلاس کنترلر حتما باید اجرا بشه و من نمی تونم بدون ایجاد شی از این کلاس متدها یا خصلتها رو بکار ببرم.

MMSHFE
دوشنبه 08 اسفند 1390, 19:26 عصر
خوب پس با این اوصاف، خیلی نگران حافظه مصرف شده نباشین چون PHP مدیریت حافظه و Garbage Collector خوب و قدرتمندی داره. موفق باشید.