نمایش نتایج 1 تا 4 از 4

نام تاپیک: متد private در کلاس php چیست

  1. #1

    Question متد private در کلاس php چیست

    متد private در کلاس php چیست؟

  2. #2
    کاربر دائمی آواتار narsic
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    دهکده جهانی
    سن
    35
    پست
    1,020

    نقل قول: متد private در کلاس php چیست

    Private یک متد نیست بلکه یک تعریف کننده است.
    به کمک این تعریف کننده شما میتونید مشخص کنید که هیچ کلاس فرزندی و یا نمونه ایی از این کلاس نمیتونه به این تابع، متغیر و... دسترسی داشته باشه.
    نحوه استفاده هم به این شکل
    private function test() {}
    private $test;

    نوروزتون مبارک
    موفق باشید

  3. #3

    نقل قول: متد private در کلاس php چیست

    نقل قول نوشته شده توسط narsic مشاهده تاپیک
    Private یک متد نیست بلکه یک تعریف کننده است.
    به کمک این تعریف کننده شما میتونید مشخص کنید که هیچ کلاس فرزندی و یا نمونه ایی از این کلاس نمیتونه به این تابع، متغیر و... دسترسی داشته باشه.
    نحوه استفاده هم به این شکل
    private function test() {}
    private $test;

    نوروزتون مبارک
    موفق باشید
    خیلی سخت توضیح دادین اگه میشه با یه مثال کوچولو برام توضیح بدید

  4. #4
    کاربر دائمی آواتار narsic
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    دهکده جهانی
    سن
    35
    پست
    1,020

    نقل قول: متد private در کلاس php چیست

    class test {
    private $variablePrivate;
    public funtion setVariablePrivate($value) {
    $this->variablePrivate = $value;
    }
    public function getVariablePrivate() {
    return $this->variablePrivate;
    }
    private function functionPrivate() {
    return 'Private Function Called';
    }
    public function callPrivateFunction() {
    return $this->functionPrivate();
    }
    }
    $sajad = new test;
    $sajad->variablePrivate = 'som Data'; // Error
    $sajad->setVariablePrivate('som Data'); //0k
    echo $sajad->variablePrivate; //Error
    echo $this->getVariablePrivate(); //0k
    echo $this->functionPrivate(); //Error
    echo $this->callPrivateFunction(); //0k

    همونطوری که میبینید من در کد بالا متغیر variablePrivate رو به صورت Private تعریف کردم به خاطر همین اگه بخوام از نمونه ساخته شده از کلاسم به صورت مستقیم بهش دسترسی پیدا کنم با خطا مواجه میشم پس برای مقدار دهی به اون باید از تابعی که در کلاس قرار داره استفاده کنم و برای دریافتش هم همچنین . اما این کار چه فایده ایی داره این کار بیشتر برای زمانی استفاده میشه که شما میخواید یک متغیر با مقداری که کاربر میده تکمیل نکنید و قبل از مقدار دهی به اون خودتون دست کاری روی مقدار انجام بدید و چند مورد دیگه.
    مثال زیر رو ببینید
    class customDate {
    private $startDate;
    public function setStartDate($value) {
    $this->startDate = strtotime($value);
    }
    public function getStartDate() {
    return timetostr($this->startDate);
    }
    public function diffDate() {
    return $this->startDate - now();
    }
    }
    $diffDate = new customDate;
    $diffDate->setStartDate($_POST['start_date']);
    echo 'Diff Date: '. $diffDate->diffDate();

    در این کد متغیر startDate رو به صورت private معرفی کردم که در کد مجبور باشم برای مقدار دهی این متغیر از تابع setStartDate استفاده کنم که قبل از مقدار دهی تاریخ ارسال شده رو به timestamp تبدیل کنم و بعد به متغیر بدمش و برای خوندن مقدار متغیر هم تابع getStartDate رو ایجاد کردم که در تابع قبل از خروجی دادن مقدار متغیر اون مقدار رو به همون تاریخ معمولی بر میگردونم.
    و یه تابع هم تعریف کردم به نام diffDate که اختلاف تاریخ ها رو به کمک اون تابع میگیرم و به خروجی میدم.
    اگه جاییش ابهام دارید بگید تا مجدد توضیح بدم.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •