多个逻辑或运算符和比较运算符一起使用共同作为条件判断的问题

<?php
$username = "gaolf";

$password = "123456";

$email = "gaolf@brophp.com";

$phone = "010-7654321";

if( $username == "gaolf" && $password == "123456" ) {
echo "用户名和密码输入正确";
}

if( $username == "" || $password == "" || $email == "" || $phone == "" ) {
    echo "所有的值一个都不能为空";
}

if( (isset($email) && !empty($email)) || (isset($phone) && !empty($phone)) ) {
    echo "最少有一种联系方式";
}

其中:
if( $username == "" || $password == "" || $email == "" || $phone == "" ) {
echo "所有的值一个都不能为空";
}
if条件用布尔值相对应的表示是if(false || false || false || false) 也就是条件的操作结果是false时,输出"所有的值一个都不能为空";
假设写成这样:
$username = "gaolf";

$password = "";

$email = "gaolf@brophp.com";

$phone = "";

if条件用布尔值相对应的表示是if(true || false || true || false) 此时条件的操作结果是true,不应该输出"所有的值一个都不能为空"; 实际运行后输出了"所有的值一个都不能为空";的语句。
初学php,此处不理解,请各位老师指点、解释一下,万分感谢!

你好 我刚刚复制了你的代码跑了一遍完全OK啊!不知道你的是什么问题

||运算符,当||左右两边所有条件都为false时才返回false,否则返回true,为true就执行相应代码了呀

if(true || false || true || false) 此时条件的操作结果是true,都是true了,怎么不应该输出"所有的值一个都不能为空";?????if(expression),expression为true则执行语句

 if(test){
test为true执行这里;
}else{
test为false执行这里;
}

谢谢各位老师的指点,万分感谢!

if条件语句的条件我理解错了,应该是当给出的四个变量为空时条件成立,条件的操作结果是true,就输出"所有的值一个都不能为空";
当给出的四个变量都有值时条件的操作结果是false,就不输出"所有的值一个都不能为空";当有一个变量为空时,该变量在此条件中是true,这时条件的操作结果是true,就输出"所有的值一个都不能为空";
谢谢各位老师的指点!万分感谢!