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.
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
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
?>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
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators