- Değişken oluşturmak ve PHP'nin temel türlerini tanımak
- Tek ve çift tırnaklı dizeleri, değişken yerleştirmeyi ve heredoc'u ayırt etmek
strlen,str_replace,sprintfvenumber_formatgibi fonksiyonlarla metin işlemek
Herhangi bir sitedeki profil sayfasını düşün: ad, yaş, bakiye, “öğrenci” rozeti. Program bu bilgileri bir yerde saklamalıdır. Değişkenler tam da bunun içindir. Web programlamada en çok metinle çalıştığımız için bu derste karakter dizilerine özellikle dikkat edeceğiz.
Değişkenler ve türler
PHP'de değişken adı $ işaretiyle başlar, değer ise = ile atanır. Değişkeni önceden tanımlaman ya da türünü yazman gerekmez: PHP türü değere bakarak kendisi belirler. Bu tür dillere dinamik türlü diller denir. Adlar bir harf ya da _ ile başlamalıdır; genellikle $firstName gibi camelCase biçimi tercih edilir.
<?php
$name = "Aysel";
$age = 15;
$height = 1.62;
$isStudent = true;
$phone = null;
var_dump($name);
var_dump($age);
var_dump($height);
var_dump($isStudent);
var_dump($phone);
echo gettype($age), " / ", get_debug_type($height), "\n";string(5) "Aysel" int(15) float(1.62) bool(true) NULL integer / float
| Tür | Örnek | Ne saklar |
|---|---|---|
int | 15, -3, 2026 | tam sayılar |
float | 1.62, 0.5, 3e2 | ondalıklı sayılar (kodda ayırıcı her zaman noktadır) |
string | "Aysel", 'PHP' | metin |
bool | true, false | mantıksal değer: doğru ya da yanlış |
null | null | “değer yok” |
array | [5, 4, 5] | değerler topluluğu (4. ders) |
var_dump bir değerin hem türünü hem de içeriğini gösterir; hata ayıklama için en kullanışlı fonksiyondur. Karakter dizilerinde uzunluğu da yazar: string(5). gettype eski adları (integer, double), PHP 8 ile gelen get_debug_type ise modern adları (int, float) döndürür. Hiç değişmeyen değerler için bir sabit oluştur: const MAX_SCORE = 100; — sabitin adında $ bulunmaz.
Tek ve çift tırnak
Tek tırnaklı bir karakter dizisi metni olduğu gibi saklar: içinde ne değişkenler ne de \n gibi özel karakterler çalışır. Çift tırnaklı bir dizide ise değişkenlerin yerine değerleri gelir (buna değişken yerleştirme, İngilizcesiyle interpolation denir) ve \n, \t gibi karakterler çalışır. Dizeleri birleştirmek için nokta . operatörü, sona ekleme yapmak için .= kullanılır.
<?php
$city = "Ganja";
$year = 2026;
$fruit = "apple";
echo 'Hello from $city\n', "\n";
echo "Hello from $city in $year\n";
echo "Hello from " . $city . "!\n";
echo "I ate two {$fruit}s\n";
$message = "Good";
$message .= " luck";
echo $message, "\n";Hello from $city\n Hello from Ganja in 2026 Hello from Ganja! I ate two apples Good luck
{$fruit} içindeki süslü parantezler PHP'ye değişken adının nerede bittiğini söyler. Onlar olmadan "$fruits" yazımı, $fruits adında başka ve var olmayan bir değişkeni arardı. Bir dizi elemanını ya da bir nesne özelliğini dizeye yerleştirirken de {...} kullan: "{$user['name']}".
Heredoc ve nowdoc
Çok satırlı metinler (bir mektup, bir e-posta şablonu, bir HTML parçası) için heredoc kullanışlıdır: <<<TEXT ile başlar, aynı adlı işaretle biter ve çift tırnak gibi değişkenleri yerleştirir. Nowdoc (<<<'TEXT', adı tırnak içinde) ise metni tek tırnak gibi olduğu gibi saklar. PHP 7.3'ten beri kapanış işareti girintili yazılabilir; o zaman aynı miktarda girinti tüm satırların başından silinir.
<?php
$name = "Murad";
$course = "PHP";
$letter = <<<TEXT
Dear $name,
welcome to the {$course} course!
Lesson 1 starts today.
TEXT;
echo $letter, "\n";
echo <<<'RAW'
Variables like $name stay as they are.
RAW;Dear Murad, welcome to the PHP course! Lesson 1 starts today. Variables like $name stay as they are.
Kullanışlı dize fonksiyonları
<?php
$text = " Learning PHP is fun ";
$clean = trim($text);
echo strlen($clean), "\n";
echo strtoupper($clean), "\n";
echo str_replace("fun", "easy", $clean), "\n";
echo substr($clean, 0, 8), "\n";
var_dump(str_contains($clean, "PHP"));
echo ucfirst("baku"), "\n";
echo sprintf("%.2f AZN", 12.5), "\n";
echo number_format(1234567.891, 2), "\n";19 LEARNING PHP IS FUN Learning PHP is easy Learning bool(true) Baku 12.50 AZN 1,234,567.89
trim, dizenin başındaki ve sonundaki boşlukları siler; formdan gelen veriyi her zaman böyle temizle.substr($s, 0, 8)0. konumdan başlayarak 8 karakter alır;str_contains(PHP 8) bir alt dizenin bulunup bulunmadığını denetler.sprintfbir şablona göre dize oluşturur:%.2fondalık sayıyı virgülden sonra iki basamakla,%dtam sayıyı,%sise bir dizeyi yerleştirir.number_formatsayıyı yuvarlar ve binlik basamakları ayırır.
Önemli noktalar
- Değişken adı
$ile başlar; PHP dinamik türlüdür ve türü değere bakarak belirler. - Temel türler
int,float,string,bool,nullvearray'dir;var_dumptürü ve değeri birlikte gösterir. - Çift tırnak değişkenleri ve
\n'i işler, tek tırnak metni olduğu gibi saklar; dizeler.ile birleştirilir. - Heredoc çok satırlı metne değişkenleri yerleştirir, nowdoc ise metni değiştirmeden saklar.
- Azerbaycanca, Rusça ya da Türkçe harfler içeren metinlerde
mb_fonksiyonlarını kullan:strlenbaytları sayar.
Kendini test et
10 soru. Her doğru cevap XP kazandırır.
var_dump(7.0); ne yazdırır?