PHP - Değişken Argümanları

Carissa

Administrator
Katılım
2 Mar 2015
Konular
59,189
Mesajlar
88,439
Çözüm
109
Online süresi
4mo 16d
Reaksiyon Skoru
14,280
Altın Konu
2,398
TM Yaşı
11 Yıl 3 Ay 6 Gün
Başarım Puanı
1,051
MmoLira
695,092
DevLira
234
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!



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)