Taking a look at your PHP example, you have:
function foo($bar, $baz, $quux = array('quux' => "default")) {
What is $baz supposed to be here? I have no way of knowing that it's supposed to be a scalar, array or associative array.
The strength of sigils for readability is revealed in the equivalent Perl code:
my ($bar, @baz, %quux) = @_;
Here I know instantly, without reading any further documentation, that this subroutine expects a scalar (which in OOP would be the current object instance), an array and then a hash. It took a while, but I find this readable.
What PHP has over Perl, and indeed every other language right now is lowest-barrier-to-entry for web development. Out of all the other languages, it's the only one designed for the web.
On top of that, developing Perl ,Python or Ruby on a Windows machine is NOT fun and it's not easy. You want to play with PHP? Wampserver or Xampp can get you up and running on XP and Vista in seconds. Even if you manage to set up a Perl environment, you've still got CGI and DBI to install before it matches what PHP does out the box. Already I've installed Strawberry Perl, Apache, mod_perl and standard CPAN modules and all I wanted to do is a simple contact me form on my website!
That's why PHP is such a success.