Menu
Coddy logo textTech

Referans ile Değer Aktarımı

Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 7 / 68.

Varsayılan olarak, PHP'de bir fonksiyona bir değişken geçirdiğinizde, fonksiyon o değişkenin değerinin bir kopyasını alır. Bu, fonksiyon içinde yapılan herhangi bir değişikliğin fonksiyon dışındaki orijinal değişkeni etkilemediği anlamına gelir.

Ancak, bazen bir fonksiyonun orijinal değişkeni doğrudan değiştirmesini istersiniz. Referans ile geçme (passing by reference) burada devreye girer. Fonksiyon tanımınızdaki parametre adının önüne bir ampersand (&) ekleyerek, PHP'ye bir kopya yerine gerçek değişkeni geçmesini söylersiniz:

<?php
function doubleValue(&$number) {
    $number = $number * 2;
}

$value = 10;
doubleValue($value);
echo $value;  // Çıktı: 20
?>

Fonksiyondan herhangi bir şey döndürmememize rağmen $value değerinin 10'dan 20'ye nasıl değiştiğine dikkat edin. &$number parametresi, orijinal $value değişkenine doğrudan bir bağlantı oluşturarak fonksiyonun bu değişkeni doğrudan değiştirmesine olanak tanır.

Bu teknik, bir fonksiyonun birden fazla değişkeni değiştirmesine ihtiyaç duyduğunuzda veya kopyalamanın verimsiz olacağı büyük veri yapılarıyla çalışırken özellikle yararlıdır.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

challenge icon

Görev

Kolay

Üç parametre alan updateInventory adında bir fonksiyon oluşturun: bir miktar (quantity) değişkenine referans, eklenecek bir miktar ve çıkarılacak bir miktar. Fonksiyon, ilk miktarı ekleyerek ve ikinci miktarı çıkararak orijinal miktarı değiştirmelidir.

Üç girdi alacaksınız: başlangıç miktarı, eklenecek miktar ve çıkarılacak miktar. Her üç girdiyi de okuyun, başlangıç miktarıyla bir değişken oluşturun, miktar değişkenini referans yoluyla eklenecek ve çıkarılacak miktarlarla birlikte updateInventory fonksiyonuna göndererek çağırın ve güncellenmiş miktarı yazdırın.

Giriş formatı: Üç satır - ilk satır başlangıç miktarını (bir sayı), ikinci satır eklenecek miktarı (bir sayı), üçüncü satır çıkarılacak miktarı (bir sayı) içerir

Beklenen çıktı: Ekleme ve çıkarma işlemlerinden sonraki güncellenmiş miktar

Kopya kağıdı

Varsayılan olarak, PHP değişkenleri fonksiyonlara değerine göre (bir kopyasını) aktarır. Orijinal değişkeni değiştirmek için, parametre adından önce bir ampersand (&) ekleyerek referansla aktarma yöntemini kullanın:

<?php
function doubleValue(&$number) {
    $number = $number * 2;
}

$value = 10;
doubleValue($value);
echo $value;  // Çıktı: 20
?>

&$number parametresi, orijinal değişkene doğrudan bir bağlantı oluşturarak fonksiyonun bir değer döndürmeden değişkeni değiştirmesine olanak tanır. Bu, birden fazla değişkeni değiştirmek veya büyük veri yapılarıyla verimli bir şekilde çalışmak için kullanışlıdır.

Kendin dene

<?php
// Girdileri oku
$initialQuantity = intval(fgets(STDIN));
$amountToAdd = intval(fgets(STDIN));
$amountToRemove = intval(fgets(STDIN));

// Miktar değişkenini oluştur
$quantity = $initialQuantity;

// TODO: Burada referans parametresi alan updateInventory fonksiyonunu oluşturun

// TODO: updateInventory fonksiyonunu miktar referansı ile çağırın

// Güncellenmiş miktarı yazdır
echo $quantity;
?>
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler