It's a little misleading to say they need to be escaped to be recognized by PHP, the only reason they do get escaped is so the data can be inserted into a database properly. If one does not escape the data and attempts to INSERT into a database, the queries may break. For example "INSERT INTO foo VALUES ('O'reilly')" would break as it would need to be "INSERT INTO foo VALUES('O\'reilly')" to make it proper SQL. Also for security reasons one should escape it.
The PHP directive magic_quotes_gpc is on by default and it essentially runs addslashes() on all GET, POST, and COOKIE data for you. See also stripslashes().