PDA

View Full Version : سوال: مشکلات شی گرایی php



armsoftpc
چهارشنبه 30 فروردین 1391, 14:54 عصر
به نام خدا
با سلام
وقتی توی سی شارپ توابع را به صورت static تعریف می کنیم ، می توانیم بدون نمونه سازی و به صورت myclass::myfunction استفاده کنیم و اگر نوع استاتیک نباشد و ما به این گونه فراخوانی کنیم ارور میدهد.
اما در php اگر تابع استاتیک نباشد ، باز می توانیم به همین روش استفاده کنیم.
آیا این یک مشکل برای php نیست ، پس دیگر کلمه کلیدی static به چه درد می خورد.:متفکر:

MMSHFE
چهارشنبه 30 فروردین 1391, 15:04 عصر
با سلام، توی PHP کلمه کلیدی static موجب به اشتراک گذاری عنصر مربوطه (متد، متغیر) و... بین اشیاء کلاس میشه و مثلاً اگه یک متغیر رو بصورت static تعریف کنیم، میتونیم توی یک شئ بهش مقدار بدیم و توی شئ دیگه مقدارش رو بخونیم (البته توسط اسم کلاس نه اسم اشیاء یا کلمه this) ولی اگه بصورت غیر static باشه، هر شئ مقدار مخصوص خودش رو داره. بعلاوه درمورد توابع، باید دقت کنید که در توابع static به کلمه کلیدی this$ دسترسی نخواهید داشت و نمیتونید به فیلدهای غیر static دسترسی پیدا کنید. برای دسترسی به عناصر static هم باید از self بجای this استفاده بشه. بعلاوه فراخوانی متدهای غیر static به روش static (اسم کلاس و دوتا : بعدش) موجب تولید یک هشدار در سطح E_NOTICE میشه که در حالت عادی نشون داده نمیشه ولی اگه error_reporting رو روی E_ALL تنظیم کنید، هشدار مربوطه رو خواهید دید. موفق باشید.

armsoftpc
چهارشنبه 30 فروردین 1391, 15:36 عصر
آیا در شی گرایی زیاد استاتیک استفاده میشه؟
یه سوال خارج از مبحث اونم این که آیا خوب است که error_reporting را بر روی E_ALL تنظیم کنیم؟ اگر نیست بر روی چه نوعی تنظیم کنیم.

MMSHFE
چهارشنبه 30 فروردین 1391, 16:00 عصر
1- بستگی به نیازتون داره. هرجا لازم بود استفاده کنید. نمیشه بطور کلی بگیم زیاد استفاده میشه یا کم. توی یک پروژه ممکنه خیلی به کار بره، توی پروژه دیگه اصلاً !
2- معمولاً موقع طراحی روی E_ALL و روی هاست اصلی روی E_ERROR تنظیم میشه.