berkmenoo 1
berkmenoo
mavzermete 1
mavzermete
Mt2Hizmet 1
Mt2Hizmet
xranzei 1
xranzei
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Hikaye Ekle

PHP - Değişken Argümanları

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

cats.jpg


PHP'de değişken sayıda elemana sahip bir argüman listesi kabul edebilen bir fonksiyon yazmak mümkündür. Değişken bir argüman listesi bildirmek için argümanın adının önüne "..." (üç nokta) sembolü eklenir. Geçilen değerler argümanın adıyla bir dizide toplanır.

function myfunction(...$arg) {
Statement1;
Statement2;
}

Böyle bir fonksiyonu çağırmak için parantez içine virgülle ayrılmış herhangi bir sayıda değer koyun.

myfunction(v1, v2, v3, . . . , vn);

Fonksiyonda bildirilen resmi argüman, geçirilen tüm değerlerin bir dizisidir. İşlemi gerçekleştirmek için uygun yerleşik dizi fonksiyonlarından herhangi birini kullanabiliriz.

Örnek

Aşağıdaki örnekte, kullanıcı tarafından tanımlanan myfunction() fonksiyonu değişken sayıda değer alma ve bunların ortalamasını bulma yeteneğine sahiptir.

PHP:
<?php 
   function  myfunction(...$numbers) {
      $avg = array_sum($numbers)/count($numbers);
      return $avg;
   }
   $avg = myfunction(5, 12, 9, 23, 8);
   echo "average = $avg";
?>

Aşağıdaki çıktıyı üretecektir:

average = 11.4

Geçirilen dizinin boyutunu değiştirip programı tekrar çalıştırmayı deneyin.

Fonksiyonun içindeki diziyi dolaşmak için foreach döngüsü kullanabilirsiniz. Fonksiyon, değişken uzunluk argümanından önce herhangi bir konumsal argümana sahip olabilir. Alınan değerlerden, konumsal argümanlar önce doldurulacak ve diğerlerinin diziye kopyalanması sağlanacaktır.

Örnek

PHP:
<?php
   function myfunction($x, ...$numbers) {
      echo "First number: $x" . PHP_EOL;
      echo "Remaining numbers: ";
      foreach ($numbers as $n) {
         echo "$n  ";
      }
   }
   myfunction(5, 12, 9, 23, 8, 41);
?>

Aşağıdaki çıktıyı üretecektir:

First number: 5
Remaining numbers: 12 9 23 8 41

Değişken Fonksiyonlar

"..." sözdizimi olmadan bile bir fonksiyona değişken sayıda argüman işlemek mümkündür. PHP'de func_num_args(), func_get_arg() ve func_get_args() gibi benzer sonuçlarla kullanılabilen yerleşik fonksiyonlar vardır.

  • func_num_args() − Fonksiyona geçirilen argüman sayısını döndürür.
  • func_get_arg() − Bağımsız değişken listesinden bir öğe döndürür
  • func_get_args() − Bir fonksiyonun argüman listesini içeren bir dizi döndürür

Örnek

Yukarıdaki değişken argüman örneği aşağıdaki fonksiyonlarla yeniden yazılabilir:

PHP:
<?php
   function myfunction() {
      $sum = 0;
      foreach (func_get_args() as $n) {
         $sum += $n;
      }
      return $sum;
   }
   echo myfunction(5, 12, 9, 23, 8, 41);
?>

Aşağıdaki çıktıyı üretecektir:


Örnek

Bu program fonksiyona geçirilen tüm sayıları yazdırır.

PHP:
<?php
   function myfunction() {
      $len = func_num_args();
      echo "Numbers : ";
      $i=0;
      for ($i=0; $i<$len; $i++)
      echo func_get_arg($i) . " ";
   }
   myfunction(5, 12, 9, 23, 8, 41);
?>

Aşağıdaki çıktıyı üretecektir:

Numbers : 5 12 9 23 8 41
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst