On Wed, 2011-01-12 at 11:45 -0800, [email protected] wrote:
> I'd like to make a suggestion for a change, or possibly an addition, to the
> PHP language.
>
> I'm learning PHP and have been very excited with what it can do in relation
> to HTML. But when I got to the part about arrays, I was disappointed to see
> that they are designated with a $ the same as other variables. I was
> learning Perl before I switched, and it uses the @ sign to designate an
> array. That makes it a lot simpler to see at a glance what is an array and
> what isn't - at least for beginners like me.
>
> Has there been any talk of adopting the @ sign for arrays in PHP? Or is that
> symbol used for something else that I haven't read about yet?
>
> What is the proper channel for making suggestions like this?
>
> Thanks,
> Marc
PHP is a loosely typed language, so you can have a variable that,
throughout its lifetime in an app, is both a scaler (integer, string,
etc) or an array. For example:
<?php
$message = "hello world";
echo $message;
$message = array('hello', 'bob');
echo "{$message[0]} {$message[1]}";
?>
There are functions you can use to determine the type of a variable,
such as is_string() and is_array() and you can use var_dump() in debug
statements to quickly see the type of a variable. I think changing
something as integral as a variable prefix would break a lot of code
which makes use of the loose typing, and would cause much more confusion
further down the line.
Also, as you may have guessed, the @ symbol is already in use at the
moment. In PHP it ensures that minor errors are silently ignored. For
example:
@executeSomeFunction()
would run that named function, but ignore any minor errors and warnings.
You'll typically find it used a lot in calls to mail() as that can be
flaky on some systems due to a number of factors outside of PHP.
Thanks,
Ash
http://www.ashleysheridan.co.uk