xranzei 1
xranzei
Bvural41 1
Bvural41
PrimeAC 1
PrimeAC
Payidar2 1
Payidar2
Fethi Polat 1
Fethi Polat
Wizard' 1
Wizard'
shrpnl 1
shrpnl
Queinn 1
Queinn
NovaLst 1
NovaLst
InfernoShade 1
InfernoShade
MysticBlade 1
MysticBlade
SolarPhantom 1
SolarPhantom
Hikaye Ekle

Altın Konu PHP Type Juggling Nedir?

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

E.png

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ı;


Ö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.


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"
 

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

Geri
Üst