PHP - Fonksiyon Parametreleri

Carissa

Administrator
Katılım
2 Mar 2015
Konular
59,185
Mesajlar
88,376
Online süresi
4ay 14g
Reaksiyon Skoru
14,227
Altın Konu
2,398
Başarım Puanı
1,051
TM Yaşı
11 Yıl 1 Ay 21 Gün
MmoLira
694,336
DevLira
234

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!



PHP'de bir fonksiyon bir veya daha fazla parametreyi kabul edecek şekilde tanımlanabilir. Fonksiyon parametreleri, bir fonksiyonu tanımlarken fonksiyon adının önündeki parantez içinde virgülle ayrılmış ifadeler listesidir. Bir parametre herhangi bir skaler tipte (sayı, dize veya Boolean), bir dizi, bir nesne veya hatta başka bir fonksiyon olabilir.

function foo($arg_1, $arg_2, $arg_n) {
statements;
return $retval;
}

Argümanlar, fonksiyon gövdesi içinde işlenecek değişkenler olarak hareket eder. Bu nedenle, herhangi bir normal değişkenle aynı adlandırma kurallarını izlerler, yani "$" ile başlamalı ve alfabetik karakterler, rakamlar ve alt çizgi içerebilirler.

Not: Tanımlanabilecek parametre sayısında herhangi bir sınırlama yoktur.

Parametreli bir fonksiyonun çağrılması gerektiğinde, fonksiyon tanımındaki argüman sayısı kadar değerin fonksiyona iletildiğinden emin olmalısınız.

foo(val1, val2, val_n);

Parametrelerle tanımlanan bir fonksiyon, geçirilen değerlere bağlı olarak dinamik olarak değişen bir sonuç üretebilir.

Örnek

Aşağıdaki kod, iki parametreli addition() fonksiyonunun tanımını içerir ve ikisinin toplamını görüntüler. Çalışma zamanı çıktısı, fonksiyona geçirilen iki değere bağlıdır.

PHP:
<?php
   function addition($first, $second) {
      $result = $first+$second;
      echo "First number: $first \n";
      echo "Second number: $second \n";
      echo "Addition: $result";
   }

   addition(10, 20);

   $x=100;
   $y=200;
   addition($x, $y);
?>

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

First number: 10
Second number: 20
Addition: 30
First number: 100
Second number: 200
Addition: 300


Resmi ve Gerçek Argümanlar

Bazen argüman terimi parametre için kullanılır. Aslında, iki terim arasında belirli bir fark vardır.

  • Parametre, fonksiyonun tanımında kullanılan değişkeni ifade ederken, argüman ise çağrı sırasında fonksiyona geçirilen değeri ifade eder.
  • Bir argüman bir sabit, bir değişken veya bir ifade olabilir.
  • Bir fonksiyon tanımındaki parametrelere sıklıkla resmi argümanlar denir ve geçirilenlere gerçek argümanlar denir.
  • Resmi argümanların ve gerçek argümanların adları aynı olmak zorunda değildir. Gerçek argümanın değeri, soldan sağa doğru sırayla karşılık gelen resmi argümana atanır.
  • Fonksiyonda tanımlanan resmi argümanların sayısı ile geçirilen gerçek argümanların sayısı aynı olmalıdır.

Örnek

PHP, gerçek argümanların sayısı resmi argümanlardan az olduğunda bir ArgumentCountError yükseltir . Ancak, ek gerçek argümanlar resmi argümanlardan fazlaysa göz ardı edilir.

PHP:
<?php
   function addition($first, $second) {
      $result = $first+$second;
      echo "First number: $first \n";
      echo "Second number: $second \n";
      echo "Addition: $result \n";
   }

   # Actual arguments more than formal arguments
   addition(10, 20, 30);

   # Actual arguments fewer than formal arguments
   $x=10;
   $y=20;
   addition($x);
?>

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

First number: 10
Second number: 20
Addition: 30
PHP Fatal error: Uncaught ArgumentCountError: Too few arguments
to function addition(), 1 passed in /home/cg/root/20048/main.php
on line 16 and exactly 2 expected in /home/cg/root/20048/main.php:2

Argümanlar Tür Uyuşmazlığı

PHP dinamik olarak yazılmış bir dildir, dolayısıyla gerçek bir argümanın değerini resmi bir argümanla kopyalarken tür denetimini zorlamaz. Ancak, fonksiyon gövdesinin içindeki herhangi bir ifade, onu desteklemeyen belirli bir veri türüne özgü bir işlem gerçekleştirmeye çalışırsa, PHP bir istisna oluşturur.

Yukarıdaki addition() fonksiyonunda, sayısal argümanların geçirildiği varsayılmıştır. PHP'nin string argümanları geçirilirse herhangi bir itirazı yoktur, ancak eklemeyi gerçekleştiren ifade, string türü için "+" işlemi tanımlanmadığı için istisna ile karşılaşır.

Örnek

Aşağıdaki örneğe bir göz atın.

PHP:
<?php
   function addition($first, $second) {
      $result = $first+$second;
      echo "First number: $first \n";
      echo "Second number: $second \n";
      echo "Addition: $result";
   }

   # Actual arguments are strings
   $x="Hello";
   $y="World";
   addition($x, $y);
?>

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

PHP Fatal error: Uncaught TypeError: Unsupported operand types: string + string in hello.php:5

Ancak PHP zayıf tipli bir dildir. Değişkenleri mümkün olduğunca uyumlu tiplere dönüştürmeye çalışır. Dolayısıyla, geçirilen değerlerden biri bir sayının dize gösterimiyse ve ikincisi sayısal bir değişkense, PHP toplama işlemini gerçekleştirmek için dize değişkenini sayısala dönüştürür.

Örnek

Aşağıdaki örneğe bir göz atın.

PHP:
<?php
   function addition($first, $second) {
      $result = $first+$second;
      echo "First number: $first \n";
      echo "Second number: $second \n";
      echo "Addition: $result";
   }

   # Actual arguments are strings
   $x="10";
   $y=20;
   addition($x, $y);
?>

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

First number: 10
Second number: 20
Addition: 30
 

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