شاید در زبان های دیگر مانند جاوا با مفهوم ها متد getter و setter آشنایی داشته باشد. در پی اچ پی دو تایی از متدهای جادویی به نام ()get__ و ()set__ هست که به متدهای Accessor نیز شناخته می شوند و از آنها برای دریافت مقدار یک ویژگی خصوصی (Private) و یا تنظیم و مقدار دهی یک ویژگی خصوصی کمک گرفته می شود. به وارون (بر خلاف) متد ()toString__ که نمی توانست آرگومان ورودی دریافت کند، متد های ()get__ و ()set__ می توانند آرگومان ورودی را دریافت و همچنین مقدار برگشتی داشته باشند.

دسترس پذیزی عضوهای کلاس 

اعضای یک کلاس که شامل ویژگی ها و متدها هستند، می تواند یکی از سه دسترسی عمومی (Public)، خصوصی (Private) و محافظت شده (Protected) را داشته باشند. برای آنکه عضوی (هموند همسان فارسی واژه عضو است) از کلاس به صورت عمومی (همگانی) باشد، باید واژه کلیدی public پیش از آن نوشته شود. به یاد داشته باشید اگر هیچ یک از سه گونه دسترس پذیری هموندهای کلاس را مشخص نکنیم، پس همگانی (عمومی) خواهد بود.

اگر پیش از هموند واژه کلیدی private باشد، پس آن هموند (عضو) کلاس به صورت پنهانی (خصوصی) خواهد بود، پس دیگر از بیرون کلاس نمی توان به آن (بوسیله نمونه کلاس) دسترسی داشته باشیم. بنابراین هموندهای (عضوهای) private از بیرون کلاس پنهانی (خصوصی) خواهند بود و تنها از درون کلاس می توان به آنها دسترسی داشت. در برابر private، هموندهای همگانی (عمومی) هستند که هم از درون کلاس و هم از بیرون کلاس می توان به آنها دسترسی داشت.

واپسین (آخرین) گونه دسترسی پذیری، protected است که همانند private نمی توان از بیرون کلاس و بوسیله یک نمونه از کلاس به آن دسترسی داشت ولی در کنار اینکه می توان همانند private درون کلاس به آن دسترسی داشت، از درون کلاس های فرزند (Child Class – Extended Class) نیز می توان به هموندهای protected نیز دسترسی داشت.

متد ()get__ زمانی خودکار فراخوانی می شود که بخواهیم به مقدار یک ویژگی (متغیر) از کلاس را دسترسی داشته باشیم. در برابر آن، متد ()set__ زمانی خودکار فراخوانی می شود که بخواهیم مقداری را برای یک ویژگی از کلاس انتساب دهیم. بنابراین چون نمی توانیم به عضوهای (هموندهای) private از بیرون کلاس دسترسی داشته باشیم، می توانیم متد ()ser__ را برای مقداردهی آنها و متد ()get__ را برای دریافت مقدار آنها از بیرون کلاس به کار ببریم.

در شکل زیر نمونه ساده از کاربرد متد ()get__ در کلاسی به نام Person نشان داده شده است. این کلاس دارای دو ویژگی private است، پس نمی توانیم آنها را از بیرون کلاس مقداردهی کنیم، پس برابر با شکل زیر، از تابع سازنده با دو آرگومان کمک گرفته ایم که درون آن و بوسیله متغیر this$ این دو ویژگی مقداردهی می شوند. سپس متد ()get__ با یک تک آرگومان پیاده سازی شده است که در واقع این تگ ارگومان همان نام یکی از دو ویژگی کلاس است. اگر ویزگی age$ باشد، نخست مقدار آن که پیش از این و بوسیله تابع سازنده فرستاده شدهبود، بررسی می شود که آیا بیشتر از ۳۰ است و اگر اینگونه بود، ۱۰ تا از آن کم شده و مقدار تازه برگشت داده می شود.

متد ()get__ تنها یک تک آرگومان که خودکار نام ویژگی می شود را دیافت می کند ولی متد ()set__ چون باید مقداری را نیز انتساب دهد، پس دو آرگومان دریافت می کند. آرگومان یکم آن نام ویژگی و آرگومان دوم آن مقداری است که می خواهیم انتساب دهیم. در شکل زیر که همان کلاس Person است می توانید کاربرد ()set__ را ببینید.

در شکل بالا هم تابع سازنده و هم تابع ()set__ نوشته شده است، پس می توانیم از هر دو برای دریافت مقدار کمک بگیریم. در خط ۲۸ نخست بوسیله تابع سازنده، دو مقدار برای دو ویژگی دریافت شده و سپس به دنبال آن و بوسیله دسترسی به نام ویژگی با نمونه (شی) کلاس، این دو مقدار تغییر می کنند. توجه کنید ویژگی های name$ و age$ هر دو private هستند، پس اگر متد ()set__ نوشته نشده بود، خط های ۲۹ و ۳۰ و ۳۱ خطا بودند، زیر نمی توانستیم از بیرون کلاس به آنها دسترسی داشته باشیم. سپس در خط ۳۱ مقدار ۱۶۰ برای ویژگی age$ فرستاده می شود ولی در شکل خروجی زیر می بینید که واپسین (آخرین) مقداردهی، یعنی ۱۶ برای آن نشان داده می شود، زیرا درون بدنه متد ()set__ در شرط if گفته شده سن نباید بیشتر از ۱۵۰ یا کمتر از صفر باشد. در پایان در خط ۳۲ و بوسیله متد ()toString__ مقدار هر دو ویژگی نشان داده می شود.