soulmy adlı üyeden alıntı: mesajı görüntüle
@mahirtaha; @M_D_5;

function test($str) {
 
    $str++;
 
}
 
$str = 1;
 
test($str);
 
echo $str;
Object yerine string yapınca, 1 çıkıyor. Fonksiyon içinde global $str; yazsaydık 2 çıkacaktı.

Yani object olunca global tanımlamaya gerek kalmıyor, hep 2 çıkıyor. Aradaki farkı anlayamadım tam olarak.
sizin değişken adını $str yapmanız değişkeni string değişkeni yapmaz. String türünde bir değişken oluşturup 1 basmak istiyorsanız $str = 1; şeklinde değil $str = "1"; şeklinde tanımlamanız gerekir.
Burda anlatmaya calıstıgım obje de olsa değişkende olsa siz 1 e eşitliyip int bir değer veriyorsunuz bunu da test fonksyionunda 1 artırıyorsunuz. 1+1 =2 sonuu veriyor. String şeklinde kullanmak istiyorsanız. $srt = "1"; tırnak ıcınde olmalıdır değişken adlarına gre string yada int olmaz. $double ="5"; dedim diye $double değişkenim double türünde olmuş olmuyor. $double değişkeni bir string şuan için.


Sonucun hep 2 değil sürekli yükselmesini kastediyoranız siz her program satır satır okumaya basladıgında deger onceden ne olursa olsun 1 eşitliyorsunuz. bir önceki el değer 2 olmul olsa bile aynı değişken tekrar 1 e şitlenip bir eklenıyor. her sayfa yenılemesınde. sürekli artırımlı ilerlemek istiyorsanız şöyle bir kod kullanılabilir.
function test($str) {
 
    $str++;
 
}
session_start();
if(empty($_SESSION["oturumadi"])){
$_SESSION["oturumadi"] = 0;
}
test($_SESSION["oturumadi"]);
echo $_SESSION["oturumadi"];