Re: Array Symbol Suggestion
| From: | Ashley Sheridan | Date: | Wed, 12 Jan 2011 20:01:32 +0000 |
| Subject: | Re: Array Symbol Suggestion | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-310706@lists.php.net to get a copy of this message | ||
On Wed, 2011-01-12 at 11:45 -0800, sono-io@fannullone.us 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