$x = true and false;
var_dump($x);
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Lütfen bu sorunun neden bildirilmesi gerektiğini düşündüğünüzü kısaca açıklayın.
Lütfen bu cevabın neden bildirilmesi gerektiğini düşündüğünüzü kısaca açıklayın.
Lütfen bu kullanıcının neden rapor edilmesi gerektiğini düşündüğünüzü kısaca açıklayın.
Birçok kişi için şaşırtıcı bir şekilde, yukarıdaki kod bool(true) çıktısı verecek ve and operatörünün or yerine or operatörü gibi davrandığını ima edecektir.
Buradaki sorun, = operatörünün işlem sıralamasında and operatörüne göre öncelikli olmasıdır, bu nedenle $x = true ve false ifadesi işlevsel olarak şu şekilde eşdeğer olur:
$x = true; // $x değerini true değerine eşitler
true ve false; // false ile sonuçlanır, ancak hiçbir şey üzerinde etkisi yoktur
Bu, bu arada, amacınızı açıkça belirtmek için parantez kullanmanın neden herhangi bir dilde genellikle iyi bir uygulama olduğuna dair harika bir örnektir. Örneğin, yukarıdaki $x = true and false ifadesi $x = (true and false) ile değiştirilirse, $x beklendiği gibi false olarak ayarlanır.