رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
اولین کلاس PHP ام رو نوشتم ...
#16
static بودن ربطی به کپسوله سازی نداره ...
پاسخ
تشکر شده توسط:
#17
(10-04-1394، 05:21 ب.ظ)MRPM نوشته: البته من فیلد name_$ رو خصوصی تعریف کردم. کد رو هم اجرا کردم مشکلی نداشت.

جالبه برای من اجرا نمی شه ...
پاسخ
تشکر شده توسط:
#18
(11-04-1394، 12:12 ق.ظ)arash691 نوشته: static بودن ربطی به کپسوله سازی نداره ...

پس چرا در اون پست فرموده بودین که public گذاشتن متغیر ها با مفهوم کپسوله سازی جور در نمی آد؟
ممنون
پاسخ
تشکر شده توسط:
#19
ببینید private و public (سطح دسترسی اعضای کلاس) بودن رو با static و non-static ( روش های تخصیص حافظه به اعضای کلاس ) بودن اشتباه نگیرید ...
پاسخ
تشکر شده توسط:
#20
ممنون، پس الان استفاده از Static برای متغیر های سراسری اشتباهه با نه؟ ببخشید زیاد سوال می پرسم ...
پاسخ
تشکر شده توسط:
#21
خواهش ... نمیشه بطور کلی جواب داد ، شرح مسئله و کد خودتون رو قرار بدید
پاسخ
تشکر شده توسط:
#22
این بخش کلاس :
    static function plusNumbers($number1,$number2){
        $sum = $number1+$number2;
        return $sum;
    }

و این هم متغیر :
    static $sum;
الان این مشکلی داره؟
یک سوال هم داشتم، چرا بعضی ها برای متغیر هاشون هم از static و هم private استفاده می کنن ؟
پاسخ
تشکر شده توسط:
#23
اگه از sum جای دیگه ای استفاده نمی کنید متد رو به اینصورت تغییر بدید :
static function plusNumbers($number1,$number2){
    return $number1+$number2;
}
پاسخ
تشکر شده توسط:
#24
ممنون، این متغیر های اضافی رو پاک کردم ...
ثوابت منظورتون اینه که متغیر یک مقدار ثابت داره ؟
پاسخ
تشکر شده توسط:
#25
بهتره در این مورد google کنید چون خودم شک دارم درست گفتم یا نه !
پاسخ
تشکر شده توسط:
#26
آقا ممنون، ببخشید اذیتتون کردم ...
پاسخ
تشکر شده توسط:
#27
پست اول آپدیت شد ...
پاسخ
تشکر شده توسط:
#28
پست اول دوباره بروزرسانی شد ...
پاسخ
تشکر شده توسط:
#29
وقتی فیلد استاتیک تعریف میکنید، باید با کمک ::self بهش دسترسی پیدا کنید وگرنه دارین در اصل یه متغیر محلی توی تابع میسازین. این مثال رو ببینید:
class Point
{
    private static $_x;
    private static $_y;

    public static function setX($x)
    {
        if($x >= 0 && $x < 640) {
            self::$_x = $x;
        }
    }

    public static function setY($y)
    {
        if($y >= 0 && $y < 480) {
            self::$_y = $y;
        }
    }

    public static function getX()
    {
        return self::$_x;
    }

    public static function getY()
    {
        return self::$_y;
    }

    public static function Display()
    {
        echo '<p>X = ' . self::$_x . ' , Y = ' . self::$_y . '</p>' . PHP_EOL;
    }
}

Point::setX(5);
Point::setY(7);
Point::Display(); // output: X = 5 , Y = 7
پاسخ
تشکر شده توسط:
#30
ممنون استاد که اطلاع دادین ...،یک سوال شما چرا در این مثال خودتون، برای متغیر ها private هم تعریف کردین ولی در تابع از public، استفاده کردین ؟
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان