为什么字符串大于或小于整数?

I am not able to get it that why the statement gets true both the times.?

$hello="foo";
     if($hello<=6){
        echo "yes
";
     }
     if ($hello>=0) {
        echo "ohh yess!";
     }

it outputs

yes
ohh yess!

I do know this is illegal comparison between integer and string,but why after all it gets true.

As the PHP manual says:

The value is given by the initial portion of the string. If the string starts with valid numeric data, this will be the value used. Otherwise, the value will be 0 (zero).

In this case, the string foo evaluates to zero when the comparison is done and both the if conditions will hence evaluate to TRUE.

Effectively, you'll be doing:

if(0 <= 6) {
    echo "yes
";
}

if (0 >= 0) {
    echo "ohh yess!";
}

Use === operator if you want to make sure the variable types are also taken into consideration.

Currently it is checking if $hello exist and in both cases it is true.May be you want this

$hello="foo";
     if(strlen($hello)<=6){
        echo "yes
";
     }
     if (strlen($hello)>=0) {
        echo "ohh yess!";
     }

This is because of type juggling in PHP. So "foo" evaluates to zero because it is converted to an integer. If you use the the identical operator (===) type conversions are not done so "foo" is treated a literal string and your statement will then evaluate to false.