Menu
Coddy logo textTech

Logical Operators Part 2

Coddy'nin PHP Journey'sinin Temeller bölümünün bir parçası — ders 26 / 71.

NOT operatörü (!) bir boole değerini zıttına çevirir. Bir şey true ise false olur ve tersi de geçerlidir:

<?php
$isLoggedIn = false;

$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(true)

$isLoggedIn = true;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(false)
?>

Birden fazla mantıksal operatörü tek bir ifadede birleştirebilirsiniz. Bunu yaptığınızda, niyetlerinizi netleştirmek için parantez kullanın:

<?php
$age = 25;
$hasTicket = true;
$isVIP = false;

// Bilet varsa VE (yetişkinse VEYA VIP ise) girebilir
$canEnter = $hasTicket && ($age >= 18 || $isVIP);
var_dump($canEnter); // bool(true)
?>

Parantez olmadan, && ||'den önce değerlendirilir. Ancak, parantez kullanmak kodunuzu okumayı kolaylaştırır ve hataları önler. Operatörleri birleştirirken, her zaman koşulları mantıksal olarak gruplayın ki tam olarak ne demek istediğinizi ifade edin.

challenge icon

Görev

Kolay

Girişten dört değer oku: bir tamsayı temperature, bir dize isRaining (ya "true" ya da "false"), bir dize hasUmbrella (ya "true" ya da "false"), ve bir dize hasRaincoat (ya "true" ya da "false").

Dize değerlerini "true" ile karşılaştırarak boolean'a dönüştür.

Aşağıdaki üç koşulu değerlendir ve her birinin sonucunu var_dump() kullanarak yazdır, her biri yeni bir satırda:

  1. Yağmur DEĞİL yağıyor mu diye kontrol et (! operatörünü kullan)
  2. Kişinin içeride kalması gerekip gerekmediğini kontrol et: yağmur yağıyor VE ne şemsiyesi ne de yağmurluğu var (her iki öğe için ! kullan)
  3. Kişinin rahatça dışarı çıkıp çıkamayacağını kontrol et: sıcaklık en az 15 VE (yağmur DEĞİL yağıyor VEYA şemsiyesi veya yağmurluğu var)

Örnek:

Eğer girdiler 20, true, false, ve true ise, çıktı şu olmalı:

bool(false)
bool(false)
bool(true)

Açıklama:

  • !isRaining → !true → false
  • isRaining && !hasUmbrella && !hasRaincoat → true && true && false → false
  • temperature >= 15 && (!isRaining || hasUmbrella || hasRaincoat) → true && (false || false || true) → true && true → true

Kopya kağıdı

NOT operatörü (!) bir boolean değeri tersine çevirir:

<?php
$isLoggedIn = false;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(true)

$isLoggedIn = true;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(false)
?>

Birden fazla mantıksal operatörü tek bir ifadede birleştirebilirsiniz. Niyetlerinizi netleştirmek için parantez kullanın:

<?php
$age = 25;
$hasTicket = true;
$isVIP = false;

// Can enter if: has ticket AND (is adult OR is VIP)
$canEnter = $hasTicket && ($age >= 18 || $isVIP);
var_dump($canEnter); // bool(true)
?>

Parantez olmadan, && ||'den önce değerlendirilir. Ancak, parantez kullanmak kodunuzu okumayı kolaylaştırır ve hataları önler.

Kendin dene

<?php
// Giriş değerlerini oku
$temperature = intval(fgets(STDIN));
$isRainingStr = trim(fgets(STDIN));
$hasUmbrellaStr = trim(fgets(STDIN));
$hasRaincoatStr = trim(fgets(STDIN));

// TODO: Dize değerlerini "true" ile karşılaştırarak boolean'lara dönüştür


// TODO: var_dump() kullanarak üç koşulu değerlendir ve yazdır:
// 1. Yağmur yağmadığını kontrol et
// 2. Kişinin içeride kalması gerekip gerekmediğini kontrol et (yağmur VE şemsiye yok VE yağmurluk yok)
// 3. Kişinin rahatça dışarı çıkıp çıkamayacağını kontrol et

?>
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler