🚀 تخفیف ۳۵٪ + ۳.۵ میلیون هدیه! برنامه‌نویسی رو الان شروع کن - فقط امروز!
۰ ثانیه
۰ دقیقه
۰ ساعت
۶ دانشجوی سون‌لرن
پرینت شدن متد private
جامعه پی اچ پی ایجاد شده در ۲۷ تیر ۱۴۰۲

سلام خسته نباشید

چجوری میشه که وقتی یک کلاس دارای متد private رو پرینت میکنیم اون متد با مقدار پیش فرض چاپ میشه ولی وقتی فقط اون متد رو پرینت میکنیم خظای Cannot access private propertyرو میده؟

ممنون

سلام

متوجه سوالت نشدم.

کد مورد نظر رو بفرست و از روی اون مشکل رو بگو.

احمدرضا فاطمی کیا ۲۷ تیر ۱۴۰۲، ۱۰:۱۹
class A{
    public $brand ="volvo ";
    public $model ="ex90 ";
    public $color ="gray ";
    private  $year="2023 ";
}
$car=new A();
echo '
';
print_r($car);
echo '
'
; print_r($car->year);
Alireza ۲۷ تیر ۱۴۰۲، ۱۰:۲۳


میدونم که اگر کلاس رو پرینت بگیریم همه property‌ها رو چاپ میکنه

ولی وقتی خود private propertyرو پرینت بگیریم خطای Cannot access private propertyرو میده

سوالم اینه که چرا این اتقاق میفته؟

خسته نباشید

Alireza ۲۷ تیر ۱۴۰۲، ۱۰:۲۶

خب شما در دامپ اول دارید کلاس رو دامپ میگیرید و محتویاتش رو نشون میده.

اما شما دسترسی به مقادیر private ندارید.

احمدرضا فاطمی کیا ۲۷ تیر ۱۴۰۲، ۱۰:۳۶

دقیقا

فقط سوالی که دارم علت این موضوع هست

Alireza ۲۷ تیر ۱۴۰۲، ۱۰:۴۰

خب دلیلش معلومه دیگه

شما باید به ساختار کلاس دسترسی داشته باشید.

شما میاید یک شی جدید ایجاد میکنید و اون شی جدید رو میبینید.

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

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

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