۳ مهدی
متدهای کتابخونه Leaflet
جامعه پی اچ پی ایجاد شده در ۱۴ مرداد ۱۴۰۱

سلام

من این متدها رو اصلا متوجه نمیشم

مثلا چرا توی کد زیر 2تا متد پشت هم صدا زده میشن:

map.getBounds().getNorth();

یعنی چی که متد getNorth داخل getBounds هست؟

مگه میشه یک متد توی یه متد دیگه تعریف کرد؟

سلام دوست عزیز

بله میشه تعریف کرد

زمانی که اون متد شی فعلی رو برگردونه کل متد‌ها برای مجدد صدا زدن در دسترس هستن

به این روش میگن method chaining

جلوتر توی شی‌گرایی باهاش آشنا میشید

موفق باشید ?

محمد گازری ۱۴ مرداد ۱۴۰۱، ۱۳:۴۴

یعنی درواقع چنین چیزی هست : ؟

class map
{
    public function getBounds()
    {
        $this->lan = 31.333;
        $this->lat = 51.555;
        return $this;
    }
    public function getLan()
    {
        echo $this->lan;
    }
    public function getLat()
    {
        echo $this->lat;
    }
}
مهدی ۱۴ مرداد ۱۴۰۱، ۱۷:۲۲

?کد زیر رو اجرا کنید تا بصورت کلی کانسپت رو درک کنید

در سرفصل‌های پیش رو به این مورد پرداخته شده

class MethodChain
{
    public function first()
    {
        echo 'first method' . PHP_EOL;
        return $this;
    }
    public function second()
    {
        echo 'second method' . PHP_EOL;
        return $this;
    }
    public function third()
    {
        echo 'third method' . PHP_EOL;
        return $this;
    }
}
$methodChain = new MethodChain;
$methodChain->first()->second()->third();

خروجی به شکل زیر میشه

b0fa-Screen Shot 2022-08-05 at 22.02.37.pngموفق باشید

بهترین پاسخ
محمد گازری ۱۴ مرداد ۱۴۰۱، ۱۷:۳۴