Type casting simply forces a variable to be of a certain type, whether that be string, array, integer, etc.
Not even sure what you had in mind asking if you can 'escape' from type casting...
The bottom line here is YOU CANNOT TRUST USER INPUT.
The only thing you can do to ensure that people don't break things by giving you teh wrong input is to CHECK IT. This means type casting, checking to see if user input is valid ( i.e.: make sure they enter an email address into the email address field, an integer when you're being passed a database ID, etc. ) and always checking to make sure the expected input is actually there. Use the super-global arrays $GET, $POST, etc. and log errors and other disasters do you can see what happened and fix it later.