Sobes.tech
Middle

PHP və JavaScript-də bağlamalar arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Əsas fərq onların yaradılma və istifadə üsullarında yatır:

  • PHP: Bağlamalar Closure sinifinin obyektləridir. Onlar function açar sözü ilə (anonim funksiyalar üçün) yaradılır və use açar sözü ilə valideyn sahəsindən dəyişənləri açıq şəkildə idxal edə bilərlər. Dəyişənlər standart olaraq dəyər ilə idxal edilir, lakin & istifadə edilərək referans ilə idxal edilə bilər.
  • JavaScript: Bağlamalar təbii şəkildə başqa bir funksiyanın daxilində funksiyanı təyin etməklə yaradılır. Daxili funksiya xarici funksiyanın dəyişənlərinə və onun sahəsinə giriş əldə edir. Dəyişənlər referans ilə (və ya primitiv tiplər və kopyalar üçün dəyər ilə) tutulur.

PHP-də bağlamalar use sintaksisi ilə daha aydın olur, JavaScript-də isə bu mexanizm proqramçı üçün daha şəffafdır.

PHP-də nümunə:

<?php
function outerFunction($x) {
    return function() use ($x) { // Açıqlama idxal
        echo $x;
    };
}

$closure = outerFunction("Salam");
$closure(); // Çıxış: Salam

JavaScript-də nümunə:

function outerFunction(x) {
  return function() { // Qeyri-müəyyən giriş
    console.log(x);
  };
}

const closure = outerFunction("Salam");
closure(); // Çıxış: Salam