Doğru doğru, string tabirini yanlış kullandım. Mesajı editledim şimdi.
Ben tam anlatamadım derdimi. Baştan alalım.
function test($obj) {
$obj->a++;
}
$obj = new stdClass();
$obj->a = 1;
test($obj);
echo $obj->a;Ekran çıktısı : 2
function test($degisken) {
$degisken++;
}
$degisken = 1;
test($degisken);
echo $degisken;Ekran çıktısı : 1
Neden farklı sonuç çıkıyor? Onu anlayamadım.
Çünkü siz ekrana $degiskeni basıyorsunuz. test($degisken) i değil.
doğru gösterim echo test($degisken) olmalı ve fonksiyonda da return etmeniz daha mantıksal olacaktır. dopru kod şu şekilde.
<?php
function test($degisken){
$degisken++;
return $degisken;
}
$degisken = 1;
echo test($degisken);Bu sorunla objede karşılaşmama sebebiniz ise objenin bellekte pointer olarak tutulması obje değeri ile oynuyorsunuz obje değerini tekrar aynı obje değerine yeni sonuç fonksiyonuyla eşitlemek zorunda değilsiniz obje zaten bellekte tutuluyor