#fun with typecasts

- `!!$foo` will turn any truthy value to `true` (or `1` in output), falsy values (0, empty string, empty array) to `false` (or empty output)  
This will rarely be needed in code golf, for in most cases where you need a boolean, there is an implicit cast anyway.

- `(int)$foo` can be written as `($foo|0)`, and in most cases you can also drop the parentheses. `$foo*1` or `$foo+0` might be a better choice in some cases.
- Unlike most other languages, PHP handles strings with numeric values as numbers. So if you have any string that contains a number you have to calculate with, just calculate.
- The other way works as well: To multiply any number in a variable with `10`, you can append a zero: `*10` -> `.0` saves one byte and has almost the same precedence.  
This does _not_ work on any parenthesized expressions, function calls included.
- To turn an array into a string, use `join` instead of `implode`.  
If you don´t need a delimiter, don´t use it: `join($a)` does the same as `join('',$a)`
- Walking through strings char by char is at least two bytes (up to 10 bytes) shorter with `foreach(str_split($s)as$i=>$c){$c}` instead of `for($i=0;$i<strlen($s);$i++){$s[$i]}`.

Whatever you golf: **always have the [operator precedence table](http://php.net/manual/language.operators.precedence.php) at hand.**