Answer written by Stig Bakken.
Using spaces and avoiding tabs is the only way to ensure that a piece of code is rendered consistently in all editors and viewers. Many editors render tabs as 4 spaces, and a lot of editors, terminal programs and utilities render tabs as 8 spaces. Example:
printf("%s",
$arg);
printf("%s",
$arg);
Likewise, consider this code written with 8-space tabs:
if ($foo &&
$bar) {
}
if ($foo &&
$bar) {
}
In a community like PEAR where people use lots of different systems and editors, using tabs simply doesn't work. People will end up doing whitespace commits fixing rendering in their editor, while breaking it for others. With only spaces it will look the same to everyone.
Jamie Zawinski has written a piece on the subject too.
There is also a tool called Astyle which can help you convert your code to the appropriate style.