PHP Mantık ve Veri

Sözdizimi, değişkenler, veri türleri, dizeler, sayılar, atama, matematik ve sabitler gibi ilk PHP temellerini öğrendikten sonra sonraki adım, PHP’nin mantığı nasıl kontrol ettiğini ve kodu nasıl düzenlediğini anlamaktır.

Bu makalede, operatörler, if else ve elseif koşulları, switch ifadeleri, eşleşme ifadeleri, döngüler, işlevler, diziler, süper küreseller, normal ifadeler ve PHP RegEx işlevleri dahil olmak üzere önemli PHP konuları açıklanmaktadır.

Bu konular önemlidir çünkü geliştiricilerin karar vermesine, görevleri tekrarlamasına, kodu yeniden kullanmasına, veri koleksiyonlarını depolamasına, kullanıcı girişini yönetmesine ve gerçek web uygulamalarında metin kalıplarını doğrulamasına olanak tanır.

PHP Operatörleri

Operatörler, değerler ve değişkenler üzerinde işlem yapmak için kullanılan sembollerdir. PHP hesaplamalar, karşılaştırmalar, atamalar, mantık, dizeler ve diziler için çeşitli türde operatörler sağlar.

Aritmetik operatörler matematiksel hesaplamalar için kullanılır.

<?php
$a = 10;
$b = 3;

echo $a + $b; // Addition
echo $a - $b; // Subtraction
echo $a * $b; // Multiplication
echo $a / $b; // Division
echo $a % $b; // Modulus
?>

Atama operatörleri değerleri atamak veya güncellemek için kullanılır.

<?php
$total = 100;

$total += 50; // Same as: $total = $total + 50
$total -= 20; // Same as: $total = $total - 20

echo $total;
?>

Karşılaştırma operatörleri iki değeri karşılaştırmak için kullanılır. Genellikle bir boole sonucu döndürürler:doğruveyayanlış.

<?php
$age = 20;

var_dump($age == 20);  // Equal
var_dump($age === 20); // Identical: same value and same type
var_dump($age != 18);  // Not equal
var_dump($age > 18);   // Greater than
var_dump($age < 30);   // Less than
?>

Mantıksal operatörler koşulları birleştirmek için kullanılır.

<?php
$isLoggedIn = true;
$isAdmin = false;

if ($isLoggedIn && $isAdmin) {
    echo "Admin area";
}

if ($isLoggedIn || $isAdmin) {
    echo "Access may be allowed";
}
?>

String operatörleri metni birleştirmek için kullanılır. Nokta operatörü.String birleştirme için kullanılır.

<?php
$firstName = "Adnan";
$lastName = "Mehrat";

echo $firstName . " " . $lastName;
?>

Operatörler PHP’nin neredeyse her yerinde, özellikle hesaplamalarda, koşullarda, doğrulamada, döngülerde ve dinamik sayfa oluşturmada kullanılır.

PHP If... Else... Elseif

eğer,başkaveelseififadeler PHP’de karar vermek için kullanılır. Programın farklı koşullara bağlı olarak farklı kod çalıştırmasına izin verirler.

Temel yapı şununla başlar:eğer. Koşul doğruysa bloğun içindeki kod çalışır.

<?php
$age = 18;

if ($age >= 18) {
    echo "You are an adult.";
}
?>

başkaKoşul yanlış olduğunda blok çalışır.

<?php
$age = 16;

if ($age >= 18) {
    echo "You are an adult.";
} else {
    echo "You are under 18.";
}
?>

elseifBlok birden fazla olası koşulun olduğu durumlarda kullanılır.

<?php
$score = 75;

if ($score >= 90) {
    echo "Excellent";
} elseif ($score >= 70) {
    echo "Good";
} elseif ($score >= 50) {
    echo "Passed";
} else {
    echo "Failed";
}
?>

Gerçek PHP projelerinde koşullar çok yaygındır. Oturum açma durumunu kontrol etmek, form girişini doğrulamak, farklı mesajları göstermek, izinleri kontrol etmek ve uygulama mantığını yönetmek için kullanılabilirler.

PHP Anahtarı

anahtardeyimi birden çok olası değeri işlemenin başka bir yoludur. Bir değişkenin birden fazla bilinen değeri olabileceği durumlarda kullanışlıdır.

Switch, birçok elseif ifadesi yazmak yerine bazı durumlarda kodu daha temiz hale getirebilir.

<?php
$role = "editor";

switch ($role) {
    case "admin":
        echo "Full access";
        break;

    case "editor":
        echo "Can edit content";
        break;

    case "user":
        echo "User dashboard";
        break;

    default:
        echo "Unknown role";
}
?>

molaanahtar kelime önemlidir çünkü PHP’nin bir eşleşme bulunduktan sonra sonraki vakaya geçmesini engeller.

varsayılanhiçbir durum eşleşmediğinde blok çalışır. Bir if ifadesinin final else'ine benzer.

Anahtar genellikle durum değerleri, roller, seçilen seçenekler, sayfa eylemleri ve basit yönlendirme benzeri mantık için kullanılır.

PHP Eşleşmesi

maçifadesi, birçok durumda geçişe daha temiz bir alternatif olarak kullanılabilecek modern bir PHP özelliğidir.

Switch'in aksine, match doğrudan bir değer döndürür. Ayrıca katı karşılaştırma kullanır; bu, değer ve türün eşleşmesi gerektiği anlamına gelir.

<?php
$status = 200;

$message = match ($status) {
    200 => "Success",
    404 => "Not Found",
    500 => "Server Error",
    default => "Unknown Status",
};

echo $message;
?>

Eşleştirme, başka bir değere dayalı olarak bir değer atamak istediğinizde kullanışlıdır. Genellikle anahtardan daha kısa ve daha temiz kod üretir.

Match'in bir diğer avantajı da, eşleşen sonucu doğrudan döndürdüğü için, match'in break ifadelerine ihtiyaç duymamasıdır.

<?php
$userType = "premium";

$discount = match ($userType) {
    "free" => 0,
    "standard" => 10,
    "premium" => 25,
    default => 0,
};

echo $discount;
?>

Eşleştirme, modern PHP uygulamalarında durumları, kullanıcı rollerini, türleri, etiketleri, yapılandırma değerlerini ve yanıtları eşlerken yaygın olarak kullanılır.

PHP Döngüler

Döngüler kodu birden çok kez tekrarlamak için kullanılır. Listeler, diziler, sayaçlar, tekrarlanan HTML öğeleri, veritabanı kayıtları veya tekrar gerektiren herhangi bir görevle çalışırken kullanışlıdırlar.

PHP, aşağıdakiler de dahil olmak üzere çeşitli döngü türlerini destekler:için,süre,bu arada yapveher biri.

içinDöngü genellikle döngünün kaç kez çalışması gerektiğini bildiğinizde kullanılır.

<?php
for ($i = 1; $i <= 5; $i++) {
    echo "Number: " . $i;
}
?>

süreKoşul doğru kaldığı sürece döngü çalışır.

<?php
$count = 1;

while ($count <= 5) {
    echo $count;
    $count++;
}
?>

bu arada yapkoşul yanlış olsa bile döngü en az bir kez çalışır çünkü koşul ilk çalıştırmadan sonra kontrol edilir.

<?php
$count = 1;

do {
    echo $count;
    $count++;
} while ($count <= 5);
?>

her biridöngü PHP’de özellikle önemlidir çünkü diziler arasında döngü yapmak için kullanılır.

<?php
$languages = ["PHP", "JavaScript", "Python"];

foreach ($languages as $language) {
    echo $language;
}
?>

Döngüler gerçek projelerde yoğun olarak kullanılır. Örneğin, bir blog sayfası makaleleri görüntülemek için bir döngü kullanabilir, bir yönetici paneli kullanıcıları görüntülemek için bir döngü kullanabilir ve bir e-ticaret sayfası ürünleri görüntülemek için bir döngü kullanabilir.

PHP İşlevleri

Fonksiyonlar yeniden kullanılabilen kod bloklarıdır. Aynı mantığı defalarca yazmak yerine, bir fonksiyonun içine bir kez yazıp ihtiyaç duyduğunuzda çağırabilirsiniz.

Bir fonksiyonun genellikle bir adı, isteğe bağlı parametreleri ve isteğe bağlı bir dönüş değeri vardır.

<?php
function sayHello() {
    echo "Hello, PHP!";
}

sayHello();
?>

Fonksiyonlar parametreleri alabilir. Parametreler, işleve veri aktarmanıza olanak tanır.

<?php
function greetUser($name) {
    echo "Hello, " . $name;
}

greetUser("Adnan");
?>

Fonksiyonlar ayrıca değer döndürebilir. İşlevin bir şeyi hesaplamasını veya hazırlamasını ve sonucu geri vermesini istediğinizde değer döndürmek kullanışlıdır.

<?php
function calculateTotal($price, $quantity) {
    return $price * $quantity;
}

$total = calculateTotal(25, 3);

echo $total;
?>

İşlevler kodun daha temiz, test edilmesinin ve bakımının daha kolay olmasına yardımcı olur. Daha büyük projelerde işlevler genellikle sınıflar ve yöntemler içinde değiştirilir veya düzenlenir, ancak temel fikir önemini korur.

PHP Dizileri

Diziler birden fazla değeri tek bir değişkende saklamak için kullanılır. Bir dizi, birçok ayrı değişken oluşturmak yerine, ilgili verilerin bir koleksiyonunu tutabilir.

PHP indekslenmiş dizileri, ilişkisel dizileri ve çok boyutlu dizileri destekler.

Dizinlenmiş bir dizi sayısal dizinler kullanır.

<?php
$skills = ["PHP", "Laravel", "MySQL"];

echo $skills[0]; // PHP
echo $skills[1]; // Laravel
?>

İlişkisel bir dizi, sayısal dizinler yerine adlandırılmış anahtarlar kullanır.

<?php
$user = [
    "name" => "Adnan",
    "role" => "Developer",
    "country" => "Turkey"
];

echo $user["name"];
echo $user["role"];
?>

Çok boyutlu bir dizi, başka bir dizinin içindeki dizileri içerir.

<?php
$users = [
    [
        "name" => "Adnan",
        "role" => "Admin"
    ],
    [
        "name" => "Noor",
        "role" => "User"
    ]
];

echo $users[0]["name"];
?>

PHP’de diziler son derece önemlidir. Form verilerini, API yanıtlarını, yapılandırma değerlerini, veritabanı sonuçlarını, menüleri, kategorileri, izinleri ve diğer birçok yapıyı işlemek için kullanılırlar.

PHP Süper Küreseller

Süper küreseller, tüm kapsamlarda her zaman kullanılabilen yerleşik PHP değişkenleridir. Geliştiricilerin istek verilerine, form girişine, sunucu bilgilerine, oturumlara, çerezlere, dosyalara ve ortam değerlerine erişmesine olanak tanır.

Yaygın PHP süper küreselleri şunları içerir:

  • $_GET:URL sorgu dizesi aracılığıyla gönderilen verileri içerir.

  • $_POST:Genellikle formlardan bir HTTP POST isteği aracılığıyla gönderilen verileri içerir.

  • $_REQUEST:yapılandırmaya bağlı olarak GET, POST ve COOKIE'dan veriler içerebilir.

  • $_SERVER:sunucu ve istek bilgilerini içerir.

  • $_SESSION:geçerli kullanıcının oturum verilerini saklar.

  • $_COOKIE:tarayıcı tarafından gönderilen çerez değerlerini içerir.

  • $_FILES:Yüklenen dosya bilgilerini içerir.

  • $_ENV:ortam değişkenlerini içerir.

  • $KÜRESEL:Global değişkenlere referanslar içerir.

Örneğin,$_GETbir URL'den değerleri okuyabilir.

<?php
// Example URL: page.php?name=Adnan

$name = $_GET["name"];

echo $name;
?>

$_POSTsüper küresel genellikle formlarla birlikte kullanılır.

<?php
if ($_SERVER["REQUEST_METHOD"] === "POST") {
    $email = $_POST["email"];
    echo $email;
}
?>

Süper küreseller güçlüdür ancak dikkatli kullanılmaları gerekir. Kullanıcılardan gelen veriler saklanmadan, görüntülenmeden veya veritabanı sorgularında kullanılmadan önce daima doğrulanmalı ve arındırılmalıdır.

PHP RegEx

Normal ifadenin kısaltması olan RegEx, metni aramak, doğrulamak ve değiştirmek için kullanılan bir kalıp eşleştirme sistemidir.

Bir metnin belirli bir formata uyup uymadığını kontrol etmeniz gerektiğinde normal ifadeler kullanışlıdır. Örneğin, bir e-postayı doğrulamak, bir telefon numarasını kontrol etmek, sözcük aramak veya bir dizenin bölümlerini çıkarmak için RegEx'i kullanabilirsiniz.

Basit bir düzenli ifade modeli şöyle görünebilir:

/php/i

Bu desende,phparadığımız metindir vebenbüyük/küçük harfe duyarlı olmayan arama anlamına gelir. Bu, PHP, php, Php veya pHp ile eşleşebileceği anlamına gelir.

Başka bir örnek, bir dizenin yalnızca rakam içerip içermediğini kontrol edebilir.

/^[0-9]+$/

Bu model şu anlama gelir:

  • ^dizenin başlangıcını işaretler.

  • [0-9]0'dan 9'a kadar herhangi bir rakam anlamına gelir.

  • +bir veya daha fazla karakter anlamına gelir.

  • $dizenin sonunu işaret eder.

RegEx çok kullanışlıdır ancak kalıplar karmaşık hale geldiğinde okunması zorlaşabilir. Bu nedenle geliştiricilerin kalıpları net tutması ve bunları dikkatli bir şekilde test etmesi gerekir.

PHP RegEx İşlevleri

PHP, düzenli ifadelerle çalışmaya yönelik yerleşik işlevler sağlar. En yaygın işlevler şunlardır:preg_match(),preg_match_all(),preg_replace(),preg_split()vepreg_grep().

preg_match()işlevi bir dizede bir modelin var olup olmadığını kontrol eder.

<?php
$text = "Learning PHP is useful.";

if (preg_match("/php/i", $text)) {
    echo "The word PHP was found.";
}
?>

preg_match_all()işlev bir modelin tüm eşleşmelerini bulur.

<?php
$text = "PHP and JavaScript are popular. PHP is used for backend.";

preg_match_all("/php/i", $text, $matches);

print_r($matches);
?>

preg_replace()işlev, bir kalıpla eşleşen metni değiştirir.

<?php
$text = "I like Java.";

$result = preg_replace("/Java/", "PHP", $text);

echo $result;
?>

preg_split()işlev bir dizeyi normal ifade modelini kullanarak böler.

<?php
$text = "PHP, Laravel; Symfony Node.js";

$items = preg_split("/[,; ]+/", $text);

print_r($items);
?>

preg_grep()işlev, bir kalıpla eşleşen dizi değerlerini filtreler.

<?php
$emails = [
    "admin@example.com",
    "wrong-email",
    "user@test.com"
];

$validEmails = preg_grep("/^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,}$/", $emails);

print_r($validEmails);
?>

RegEx işlevleri genellikle form doğrulama, arama özellikleri, filtreleme, metin temizleme, yönlendirme, günlük analizi ve veri çıkarma işlemlerinde kullanılır.

Bu PHP Konseptleri Birlikte Nasıl Çalışır?

Gerçek PHP uygulamalarında bu kavramlar genellikle bir arada kullanılır. Operatörler değerleri karşılaştırır, koşullar ne olacağına karar verir, döngüler görevleri tekrarlar, işlevler yeniden kullanılabilir mantığı düzenler, diziler verileri depolar, süper küreseller girdi alır ve RegEx metni doğrular.

Örneğin, bir iletişim formu şunu kullanabilir:$_POSTgirişi almak için, e-posta biçimini doğrulamak için RegEx, hataları kontrol etmek için koşullar, doğrulama mesajlarını depolamak için diziler ve doğrulama mantığını düzenlemek için işlevler.

<?php
function isValidEmail($email) {
    return preg_match("/^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,}$/", $email);
}

$errors = [];

if ($_SERVER["REQUEST_METHOD"] === "POST") {
    $email = $_POST["email"] ?? "";

    if (!isValidEmail($email)) {
        $errors[] = "Invalid email address.";
    }

    if (count($errors) === 0) {
        echo "Form submitted successfully.";
    } else {
        foreach ($errors as $error) {
            echo $error;
        }
    }
}
?>

Bu örnek, işlevleri, dizileri, süper küreselleri, operatörleri, koşulları, döngüleri ve RegEx'i tek bir pratik yapıda birleştirir.

Sonuç

PHP operatörleri, koşullar, anahtar, eşleşme, döngüler, işlevler, diziler, süper küreseller, RegEx ve RegEx işlevleri, her PHP acemisinin anlaması gereken temel kavramlardır.

Bu konular geliştiricilerin dinamik ve düzenli kod yazmasına yardımcı olur. Basit web sitelerinden büyük arka uç uygulamalarına kadar neredeyse her gerçek PHP projesinde kullanılırlar.

Bu kavramları anladıktan sonraki adım formlar, doğrulama, dosya işleme, veritabanı bağlantıları, oturumlar, nesne yönelimli programlama ve Laravel gibi çerçevelerle pratik yapmaktır.