PHP Velho Oeste 2024

Giriş

PHP'deki her ifadenin türü, değerine bağlı olarak aşağıdaki yerleşik türlerden biridir:

PHP dinamik olarak yazılan bir dildir, yani bir değişkenin türü çalışma anında belirleneceği için türü belirtmeye gerek olmadığı varsayılır. Bununla birlikte, tür bildirimlerini kullanarak dilin bazı yönlerini statik olarak yazmak mümkündür.

Türler, üzerlerinde gerçekleştirilebilecek işlem türlerini kısıtlar. Bununla birlikte, bir işlemde türünün desteklemediği bir ifade veya değişken kullanılırsa, PHP değerin türünü işlemi destekleyen türe dönüştürmeye çalışır. Bu süreç, değerin kullanıldığı bağlama bağlıdır. Daha fazla bilgi Tür Dönüşümü bölümünde bulunabilir.

İpucu

Farklı türdeki değerler arasında karşılaştırma örnekleri tür karşılaştırma tablolarında bulunabilir.

Bilginize: Tür çarpıtma kullanarak bir ifadenin belirli bir türe göre değerlendirilmesini sağlamak mümkündür. Bir değişkenin türü ayrıca, settype() işlevi ile kullanıldığı bağlamda da değiştirilebilir.

Bir ifadenin değerini ve türünü denetlemek için var_dump() işlevi kullanılabilir. Bir ifadenin yalnızca türü öğrenilmek istenirse get_debug_type() işlevi kullanılabilir. Ancak, bir ifadenin belirli bir türde olup olmadığını saptamak için is_tür işlevleri kullanılmalıdır.

<?php
$a_bool
= true; // bool türünde
$a_str = "foo"; // string türünde
$a_str2 = 'foo'; // string türünde
$an_int = 12; // int türünde

echo get_debug_type($a_bool), "\n";
echo
get_debug_type($a_str), "\n";

// Değişken bir tamsayı ise değeri dört arttır
if (is_int($an_int)) {
$an_int += 4;
}
var_dump($an_int);

// $a_bool bir dizge ise değeri çıktıla
if (is_string($a_bool)) {
echo
"Dizge: $a_bool";
}
?>

Yukarıdaki örneğin PHP 8 çıktısı:

bool
string
int(16)

Bilginize: PHP 8.0.0 öncesinde, get_debug_type() kullanılamadığından, yerine gettype() kullanılabilir. Ancak, bu işlevin döndürdüğü bazı tür adları bu belgedekinden farklı olabilir.

add a note add a note

User Contributed Notes 1 note

up
0
kuzawinski dot marcin_NOSPAM at gmail dot com
3 years ago
No, despite description here a `callable` still is not a a full-fledged primitive type in PHP.

<?php

function testFunc() { }

class
testClass {
   
    public function
__invole() { }
   
    public static function
testStaticMethod() { }
   
    public function
testMethod() { }
}

$o = new testClass();
$lambda = function() { };

$c1 = 'testFunc';
$c2 = ['testClass', 'testStaticMethod'];
$c3 = [$o, 'testMethod'];
$c4 = $lambda;
$c5 = $o;

var_dump(is_callable($c1));  // TRUE
var_dump(is_callable($c2));  // TRUE
var_dump(is_callable($c3));  // TRUE
var_dump(is_callable($c4));  // TRUE
var_dump(is_callable($c5));  // TRUE

var_dump(gettype($c1)); // string(6) "string"
var_dump(gettype($c2)); // string(5) "array"
var_dump(gettype($c3)); // string(5) "array"
var_dump(gettype($c4)); // string(6) "object"
var_dump(gettype($c5)); // string(6) "object"

?>
To Top