شنبه یه خبراییه 🔥 منتظر شنبه باش 😉🥳
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ محمدجوکار
متوجه نشدم که privet کجا میتونه فراخونده بشه یا نشه!!!
جامعه پی اچ پی ایجاد شده در ۱۸ دی ۱۴۰۱

عرض ادب و احترام

در تصویر زیر، خب من سن رو پرایوت کردم؛ وقتی با یک شی از خود کلاس اصلیش دارم صداش میزنم، نمیاره

با یک شی، از کلاس فرزند هم وقتی صدا زده میشه، خب نمیاره مجددا

من این معنی رو که میگید تنها در کلاس خودش در دسترسه رو متوجه نمیشم .

خب ما میدونیم که پرایوت‌ها صرفا با یک گتر که تحت عنوان یه متد، ساخته میشه، قابل صدا زدن هستند

منظور شما از این که میفرمائید فقط در کلاس خودش در دسترسه، به این معنیه که ما فقط میتونیم با گتری که توی خود کلاس اصلیش قرار داره صداش بزنیم؟؟

و اگر مثلا ما توی کلاس فرزند، بیایم یه گتر دیگه تعریف کنیم و بخوایم سن رو از کلاس پدرش صدابزنیم، نمیتونیم؟؟؟؟؟

6fdd-Screenshot (578).png

سلام محمد عزیز

زمانی که یک پراپرتی پرایویت هست شما فقط توی همون کلاس بهش دسترسی داری و در خارج از کلاس به مقدارش دسترسی نداری و مقدارش رو هم نمیتونی تغییر بدی.

یعنی الان شما توی کلاس mohammad پراپرتی age رو نداری و برای اینکه اون رو داشته باشی باید اون رو پروتکتد قرار بدی.

در پراپرتی‌های پابلیک شما میتونی از خارج از کلاس هم به اون دسترسی داشته باشی و مقدارش رو تغییر بدی.

مثلا همین پراپرتی age رو میتونی به شکل زیر دریافت کنی:

echo (new person)->age;


اما در پراپرتی‌های پرایویت و پروتکتد شما باید مقدار رو بایک گتر و ستر دریافت و ست کنید.

و در پراپرتی‌های private شما فقط توی خود اون کلاس بهش دسترسی دارید.

بهترین پاسخ
احمدرضا فاطمی کیا ۱۹ دی ۱۴۰۱، ۰۴:۳۶

ممنونم از وقتی که گذاشتید

محمدجوکار ۱۹ دی ۱۴۰۱، ۱۷:۲۶