Sobes.tech
Intern

PHPде өзгөрмөлөр кандай өткөрүлөт?

sobes.tech AI

AIден жооп

PHPда өзгөрмөлөр әдепки боюнча мааниге өтөт. Бул мааниде бир өзгөрмө башка бир өзгөрмөнүн мааниси берилсе же өзгөрмө функцияга өткөрүлсө, маанинин көчүрмөсү түзүлөт. Бул көчүрмөдө жасалган өзгөртүүлөр оригиналдык өзгөрмөгө таасир этпейт.

Бирок, өзгөрмөлөр шилтеме аркылуу да өткөрүлүшү мүмкүн. Мындай учурда, маанинин көчүрмөсү эмес, ошол эле эс тутум бөлүгүнө көрсөтүүчү көрсөткүч өткөрүлөт. Шилтемеге жасалган өзгөртүүлөр түздөн-түз оригиналдык өзгөрмөгө таасир этет.

Шилтемеге өткөрүү төмөнкү учурларда колдонулат:

  • Шилтемеге берүү: Амперсанд (=&) менен берилген операторду колдонуу.

    // Шилтемеге берүү
    $a = 10;
    $b =& $a;
    $b = 20; // $b өзгөргөндө $a да өзгөрөт
    // эми $a 20
    
  • Функцияга шилтемеге берүү: Функциянын аныктамасында параметрдин алдында амперсанд (&) коюу.

    <?php
    // Шилтемеге аргумент кабыл алган функция
    function modifyValue(&$value) {
        $value *= 2;
    }
    
    $number = 5;
    modifyValue($number);
    // эми $number 10
    ?>
    
  • Функциядан шилтемеге маанини кайтаруу: Функциянын аныктамасында аталыш алдында амперсанд (&) колдонуу.

    <?php
    // Шилтемеге маанини кайтарган функция
    function &getReference() {
        static $value = 0;
        $value++;
        return $value;
    }
    
    $a = &getReference();
    $a = 100; // $a өзгөргөндө функциянын статикалык өзгөрмөсү да өзгөрөт
    
    $b = &getReference(); // $b ошол эле статикалык өзгөрмөгө шилтеме болот (баасы 101)
    ?>
    

Маанилүү: айрым маалымат түрлөрү, мисалы, объекттер, ар дайым шилтеме аркылуу өткөрүлөт (деген менен, объекттин шилтемеси өткөрүлөт). Бир объектти башкасына берүүдө, эки өзгөрмө бир эле объекттин экземплярларына шилтеме кылат.

Өткөрүү ыкмасы Эмне иштейт Колдонуу
Мааниге Маанинин көчүрмөсү түзүлөт Тууралуучу, оригиналдык өзгөрмө үчүн коопсуз
Шилтемеге Эстутумга көрсөтүүчү көрсөтүүчү өткөрүлөт Өзгөртүүлөр түздөн-түз оригиналдык өзгөрмөгө таасир этет