Mantıksal Operatörler 2. Bölüm
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.
Görev
KolayGiriş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:
- Yağmur DEĞİL yağıyor mu diye kontrol et (
!operatörünü kullan) - 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) - 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 → falseisRaining && !hasUmbrella && !hasRaincoat→ true && true && false → falsetemperature >= 15 && (!isRaining || hasUmbrella || hasRaincoat)→ true && (false || false || true) → true && true → true
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
?>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
4Karşılaştırma ve Mantıksal Operatörler
Karşılaştırma OperatörleriEşitlik ve KimlikMantıksal Operatörler 1. BölümMantıksal Operatörler 2. BölümTekrar - Basit Mantık2Değişkenler ve Veri Türleri
SayılarDizeler ve Tırnak İşaretleriBoolean DeğerleriAdlandırma KurallarıTekrar - Değişken BaşlatmaBoş DeğişkenlerDize BirleştirmeKullanıcı Girdisi AlmaFarklı Türlere Dönüştürme5Koşullu Mantık
If İfadesiIf - ElseÜçlü OperatörNull Coalescing OperatörüSwitch İfadesiTekrar - Karar Verme3Temel Operatörler
Aritmetik OperatörlerMod Alma OperatörüÜs Alma OperatörüBirleşik AtamaArtırma/AzaltmaOperatör ÖnceliğiTekrar - Basit HesaplamalarDize OperatörleriKendi başına pratik yap: Online PHP derleyicisi