- Katılım
- 21 May 2024
- Konular
- 1,450
- Mesajlar
- 2,452
- Çözüm
- 7
- Online süresi
- 3mo 25d
- Reaksiyon Skoru
- 2,565
- Altın Konu
- 1,027
- Başarım Puanı
- 274
- Yaş
- 51
- MmoLira
- 36,889
- DevLira
- 110
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 Type Juggling Nedir?
PHP dinamik olarak yazılmış bir dil olarak bilinir. PHP'de bir değişkenin türü dinamik olarak değişir. Bu özelliğe PHP'de "Type Juggling" denir.C, C++ ve Java'da, değişkeni ve türünü sonraki kodda kullanmadan önce bildirmeniz gerekir. Değişken yalnızca bildirilen türle eşleşen bir değer alabilir.PHP'de bir değişkenin açık tip bildirimi ne gereklidir ne de desteklenir. Bu nedenle PHP değişkeninin tipi, ona atanan değere göre belirlenir, tersi değildir. Ayrıca, bir değişkene farklı tipte bir değer atandığında, tipi de değişir. Örnek 1
Aşağıdaki PHP'deki değişken atamasına bakın.
Kod:
<?php
$var = "Hello";
echo "The variable \$var is of " . gettype($var) . " type" .PHP_EOL;
$var = 10;
echo "The variable \$var is of " . gettype($var) . " type" .PHP_EOL;
$var = true;
echo "The variable \$var is of " . gettype($var) . " type" .PHP_EOL;
$var = [1,2,3,4];
echo "The variable \$var is of " . gettype($var) . " type" .PHP_EOL;
?>
Aşağıdaki çıktıyı üretecektir :
The variable $var is of string type
The variable $var is of integer type
The variable $var is of boolean type
The variable $var is of array type
"$var" tipinin kendisine atanan değere göre dinamik olarak değiştiğini görebilirsiniz. PHP'nin bu özelliğine "Type Juggling" denir.
Örnek 2
İfade hesaplaması sırasında Type Juggling de gerçekleşir. Bu örnekte, basamaklar içeren bir dize değişkeni, toplama ifadesinin değerlendirilmesi için otomatik olarak tam sayıya dönüştürülür.
Kod:
<?php
$var1=100;
$var2="100";
$var3=$var1+$var2;
var_dump($var3);
?>
İşte çıktısı;
int(200)
Örnek 3
Bir dize rakamlarla başlıyorsa, varsa sayısal olmayan karakterler hesaplama yapılırken göz ardı edilir. Ancak, PHP ayrıştırıcısı aşağıda gösterildiği gibi bir bildirim yayınlar.
Kod:
<?php
$var1=100;
$var2="100 days";
$var3=$var1+$var2;
var_dump($var3);
?>
Aşağıdaki çıktıyı alacaksınız.
int(200)
PHP Warning: A non-numeric value encountered in /home/cg/root/53040/main.php on line 4
Tip Dökümü ve Tip Jonglörlüğü
PHP'deki "tip dönüştürme"nin "Type Juggling" biraz farklı olduğunu unutmayın.- Type Juggling, PHP gerektiğinde türleri birinden diğerine otomatik olarak dönüştürür. Örneğin, bir değişkene bir tamsayı değeri atanırsa, bu bir tamsayı olur.
- Öte yandan, tür dönüşümü, kullanıcı açıkça hangi veri türüne dönüşüm yapmak istediğini tanımladığında gerçekleşir.
Örnek
Tür dönüştürme, bir değişkenin belirli bir tür olarak kullanılmasını zorlar. Aşağıdaki betik, farklı tür dönüştürme operatörlerinin bir örneğini gösterir.
Kod:
<?php
$var1=100;
$var2=(boolean)$var1;
$var3=(string)$var1;
$var4=(array)$var1;
$var5=(object)$var1;
var_dump($var2, $var3, $var4, $var5);
?>
Aşağıdaki çıktıyı üretecektir :
bool(true)
string(3) "100"
array(1) {
[0]=>
int(100)
}
object(stdClass)#1 (1) {
["scalar"]=>
int(100)
}
Örnek
Bir değişkeni bir dizeye dönüştürmek, onu çift tırnak işareti içine alarak da yapılabilir.
Kod:
<?php
$var1=100.50;
$var2=(string)$var1;
$var3="$var1";
var_dump($var2, $var3);
?>
Burada aşağıdaki çıktıyı alacaksınız.
string(5) "100.5"
string(5) "100.5"


