Q:

PHP - "1ebc0b7ef6141d11989f78748555751721187266c1dd4ece76fec267e5cb1aaf" == 1 is true

Why is the following PHP code block executed?
if ("1ebc0b7ef6141d11989f78748555751721187266c1dd4ece76fec267e5cb1aaf" == 1) {
    echo "WTF!";
}

This presumably means that "1ebc0b7ef6141d11989f78748555751721187266c1dd4ece76fec267e5cb1aaf" == 1 is true?
For those stating that a string will always evaluate to true, why doesn't the following code block execute?
if ("111987266c1d" == 1) {
    echo "WTF, again!";
}

A:

When PHP compares a string to an int, it will convert the string to an int, which takes only the numbers at the beginning of the string, ending where the letters start.  I ran a few test examples through my tinker:
[1] > "1ebc0b7ef6141d11989f78748555751721187266c1dd4ece76fec267e5cb1aaf" == 1;
// true
[2] > "1ebc0b7ef6141d11989f78748555751721187266c1dd4ece76fec267e5cb1aaf" == '1';
// false
[3] > "1ebc0b7ef6141d11989f78748555751721187266c1dd4ece76fec267e5cb1aaf" == 2;
// false
[4] > "2ebc0b7ef6141d11989f78748555751721187266c1dd4ece76fec267e5cb1aaf" == 2;
// true
[5] > "2ebc0b7ef6141d11989f78748555751721187266c1dd4ece76fec267e5cb1aaf" == 3;
// false
[6] > "2ebc0b7ef6141d11989f78748555751721187266c1dd4ece76fec267e5cb1aaf" == 1;
// false
[7] > "10ebc0b7ef6141d11989f78748555751721187266c1dd4ece76fec267e5cb1aaf" == 1;
// false
[9] > "111987266c1d" == 1;
// false

This is further backed up by the documentation:

If you compare a number with a string or the comparison involves numerical strings, then each string is converted to a number and the comparison performed numerically. 

