PHP හි අන්තර්ගත ශ්‍රිතවල කොල්බැක්

PHP හි, කොල්බැක් පරාමිතියක් ලෙස භාර ගන්නා අන්තර්ගත ශ්‍රිත මාලාවක් ඇත. ඒවා සමඟ වැඩ කිරීමේ පොදු ප්‍රතිපත්තිය අපි අධ්‍යයනය කරන්නෙමු array_map ශ්‍රිතයේ නිදර්ශනය මත. මෙම ශ්‍රිතය පළමු පරාමිතිය ලෙස භාර ගනී කොල්බැක්, සහ දෙවන - අරාව. ශ්‍රිතය යොදයි අරාවේ එක් එක් අංගයට කොල්බැක් සහ වෙනස් කරන ලද අරාව ආපසු ලබා දෙයි.

විකල්ප බලමු මෙම කාර්යය භාවිතා කිරීම අපි කලින් ලබාගත් දැනුම සැලකිල්ලට ගනිමින්.

විකල්පය 1

අරාවේ සෑම අංගයකින්ම වර්ගමූලය උපුටා ගනිමු අන්තර්ගත භාවිතා කරමින් කාර්යය sqrt. මේ සඳහා, කොල්බැක් පරාමිතිය ලෙස යොමු කරමු මෙම ශ්‍රිතයේ නම සහිත නූල:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  $res = array_map('sqrt', $arr);
  var_dump($res);
?>

විකල්පය 2

අරාවේ සෑම අංගයක්ම වර්ග කරමු අප විසින් සාදන ලද සාමාන්‍ය ශ්‍රිතය භාවිතා කරමින්. මේ සඳහා, කොල්බැක් පරාමිතිය ලෙස මෙම ශ්‍රිතයේ නම සහිත නූල යොමු කරන්න:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  function func($num) {
    return $num ** 2;
  }

  $res = array_map('func', $arr);
  var_dump($res);
?>

විකල්පය 3

අපගේ ශ්‍රිතය නිර්නාමික එකක් බවට පරිවර්තනය කරමු, විචල්‍යයක ලියා ඇත:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  $func = function ($num) {
    return $num ** 2;
  };

  $res = array_map($func, $arr);
  var_dump($res);
?>

විකල්පය 4

නිර්නාමික ශ්‍රිතය පරාමිතියක් ලෙස යවන්න:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  $res = array_map(function ($num) {
    return $num ** 2;
  }, $arr);
  
  var_dump($res);
?>

විකල්පය 5

ඊතල ශ්‍රිතය භාවිතා කරමු:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  $res = array_map(fn ($num) => $num ** 2, $arr);
  var_dump($res);
?>

විකල්පය 6

දැන් අංශකය, එයට අවශ්‍ය අංකය එලවනු ලැබේ, බාහිර විචල්‍යයකින් සපයනු ලැබේ කොල්බැක්. මෙම විචල්‍යය භාවිතා කරමු, use හරහා එයට ප්‍රවේශය ලබා ගැනීම:

php<?php
  $arr = [1, 2, 3, 4, 5];
  $pow = 3;
  
  $res = array_map(function ($num) use ($pow) {
    return $num ** $pow;
  }, $arr);
  
  var_dump($res);
?>

විකල්පය 7

කලින් කේතය ඊතල හරහා නැවත ලියන්න කාර්යය. දැන් විචල්‍යය $pow ස්වයංක්‍රීයව ප්‍රවේශ විය හැකිය:

php<?php
  $arr = [1, 2, 3, 4, 5];
  $pow = 3;
  
  $res = array_map(fn ($num) => $num ** $pow, $arr);
  var_dump($res);
?>

ප්‍රායෝගික කාර්යයන්

Задание 1

නූල් සමඟ අරාවක් ලබා දී ඇත. සෑම අංගයකම පෙළ පරිවර්තනය කරන්න ඉහළ රෙජිස්ටරයට අරාව.

Задание 2

නූල් සමඟ අරාවක් ලබා දී ඇත. සෑම අංගයකම පෙළ ආපසු හරවන්න අරාව එසේ වන පරිදි සංකේත යන්න විරුද්ධ අනුපිළිවෙලින්.