/
  • چند سوال درباره کلاسها

  • ارسال پاسخ   امتیاز موضوع:
    • 1 رأی - میانگین امیتازات: 5
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی چند سوال درباره کلاسها
    نویسنده پیام
    faghani آفلاین
    عليرضا فغاني
    ****

    ارسال‌ها: 341
    تاریخ عضویت: ۱۳۸۸ مرداد ۲۲
    اعتبار: 4
    تشکرها : 255
    ( 85 تشکر در 61 ارسال )
    ارسال: #1
    چند سوال درباره کلاسها
    سلام دوستان میبخشید چند وقت نبودمBlush حسابی کار داشتم و تو یک سایت مدیر شدم و کار های دیگه اجازه شرکت در این سایتو بهم نمیدادConfused
    دوستان من در مبحث کلاسها چند تا مشکل داشتم گفتم بپرسم .
    سوال اول : تابع __construct() در مبحث کلاسها به چه دردی میخوره؟ (میشه با مثال توضیح بدید)
    سوال دوم : تابع __get() و __set() به چه دردی میخورن؟Sad( اینم با مثال باشه بهتره!Big Grin)
    سوال سوم : تابع __autoload() به چه کاری میاد؟ Undecided (اینم با مثال باشهWink)
    سوال چهارم : تابع __toString() به چه کاری میاد؟ Blush ( اینم مثال داشت که بهتر :coolSmile

    یه سوال دیگم هست که گفتم دیگه تایپک باز نکنم اینه که ما موتور 7 رنگ قالب رو با کلاس بنویسیم سرعت لود بیشتره یا با جایگزینی (str_replace() ) Huh

    ممنون از این سایت خوبتون...
    ۱۳۸۸ دي ۲۰ ۱۱:۴۷ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    hidensoft آفلاین
    عضو ارشد
    *****

    ارسال‌ها: 1,384
    تاریخ عضویت: ۱۳۸۸ شهريور ۳
    اعتبار: 46
    تشکرها : 729
    ( 1394 تشکر در 782 ارسال )
    ارسال: #2
    RE: چند سوال درباره کلاسها
    Constructors and Destructors
    کد PHP:
    __construct() 
    محتوایت این فانکشن در زمان ساخت شی اجرا می شه و اگر این تابع پارامتر هایی رو بخواد باید در زمان ساخت شی به کلاس ارجا داده بشه


    کد PHP:
    <?php
    class MyDestructableClass {
       function 
    __construct() {
           print 
    "In constructor\n";
           
    $this->name "MyDestructableClass";
       }

       function 
    __destruct() {
           print 
    "Destroying " $this->name "\n";
       }
    }

    $obj = new MyDestructableClass();
    ?>
    overloading
    کد PHP:
    __get() 
    محتویات این تابع هنگامی که شما مقداری رو درخواست می کنید اجرا می شه
    کد PHP:
    __set() 
    محتویات این تابع هم هنگامی که مقداری رو می فرستید اجرا می شه
    کد PHP:
    <?php
    //There's the class now let's see it in use

    $t = new Test();
    $t->MyProp "Property1";
    echo 
    $t->MyProp;

    /*
    when you print_r the object you will see these results

    Test Object
    (
      [properties] => Array
      (
        [MyProp] => Property1
      )
    )
    */
    ?>
    برای اطلاعات بیشتر مبحث Overloading رو مطالعه بفرمایید

    Autoloading Classes
    کد PHP:
    __autoload() 
    اینجا توضیح داده شده
    Magic Methods
    کد PHP:
    __toString() 
    این تابع هم زمانی که شما مستقیما از کلاس در خواست خروجی می کنید بدون استفاده از توابع یا متغیر محتویاتش اجرا می شه

    کد PHP:
    <?php
    // Declare a simple class
    class TestClass
    {
        public 
    $foo;

        public function 
    __construct($foo) {
            
    $this->foo $foo;
        }

        public function 
    __toString() {
            return 
    $this->foo;
        }
    }

    $class = new TestClass('Hello');
    echo 
    $class;
    ?>

    در مورد سوال آخر من درست متوجه نشدم اما احساس می کن تابع replace خیلی سریع تر از یک موتور قالب کار می کنه
    (آخرین ویرایش در این ارسال: ۱۳۸۸ دي ۲۰ ۱۲:۲۵ عصر، توسط hidensoft.)
    ۱۳۸۸ دي ۲۰ ۱۲:۲۰ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : faghani admin zoghal HiddeN paull
    faghani آفلاین
    عليرضا فغاني
    ****

    ارسال‌ها: 341
    تاریخ عضویت: ۱۳۸۸ مرداد ۲۲
    اعتبار: 4
    تشکرها : 255
    ( 85 تشکر در 61 ارسال )
    ارسال: #3
    RE: چند سوال درباره کلاسها
    ممنون از سرعت بالای پاسخگوییتونHeart
    ولی این __construct() رو متوجه نشدمBlush
    مثالش خیلی گیج کننده بودUndecided
    اگه میشه مثالی کاربردی بزنWink
    ۱۳۸۸ دي ۲۰ ۰۱:۱۹ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    oia آفلاین
    محمد ثانی
    *****

    ارسال‌ها: 2,014
    تاریخ عضویت: ۱۳۸۷ آذر ۲۶
    اعتبار: 66
    تشکرها : 2330
    ( 2091 تشکر در 1290 ارسال )
    ارسال: #4
    RE: چند سوال درباره کلاسها
    mysqli رو می شناسی؟
    کد PHP:
    <?PHP

    $db 
    = new mysqli('hostname''username''password''database');
    ?>
    لحظه ایی که داریم شی رو ایجاد می کنیم، پارامتر هایی رو به کلاس می دیم.
    بایه کلاس مثه یک تابع رفتار شده دیگه
    حالا باید شما تابع معادلش رو توی کلاس بنویسید. این کار رو به کمک تابع construct__ انجام می دی. یعنی یک تابع با این نام ایجاد می کنی
    سادست خودت یکبار امتحان کن
    کد PHP:
    <?PHP

    class test
    {
        function 
    __construct($test)
        {
            echo 
    $test;
        }
    }

    $obj = new test('aliReza');
    ?>
    ۱۳۸۸ دي ۲۰ ۰۵:۵۲ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : faghani
    mta آفلاین
    محمد
    **

    ارسال‌ها: 5
    تاریخ عضویت: ۱۳۹۰ تير ۱۰
    اعتبار: 0
    تشکرها : 0
    ( 2 تشکر در 2 ارسال )
    ارسال: #5
    RE: چند سوال درباره کلاسها
    سلام من با کلاس mysqli یک مشکل دارم !
    از این کلاس تو کدم استفاده کردم این خطا رو میده :

    Fatal error: Class 'mysqli' not found in public_html/website/ma/manager/db.inc.php on line 7

    من از پنل cpanel استفاده می کنم !!!
    مشکل چیه ؟
    چرا این کلاس رو پیدا نمیکنه ؟؟؟
    ۱۳۹۰ تير ۱۰ ۰۸:۲۲ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    hidensoft آفلاین
    عضو ارشد
    *****

    ارسال‌ها: 1,384
    تاریخ عضویت: ۱۳۸۸ شهريور ۳
    اعتبار: 46
    تشکرها : 729
    ( 1394 تشکر در 782 ارسال )
    ارسال: #6
    RE: چند سوال درباره کلاسها
    mysqli فعال نيست
    ۱۳۹۰ تير ۱۳ ۰۱:۵۵ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS