Re: Variables with - in their name
| From: | tamouse mailing lists | Date: | Sun, 18 Nov 2012 15:05:25 +0000 |
| Subject: | Re: Variables with - in their name | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-319733@lists.php.net to get a copy of this message | ||
On Sun, Nov 18, 2012 at 5:12 AM, Ashley Sheridan
<ash@ashleysheridan.co.uk> wrote:
> On Sun, 2012-11-18 at 01:37 -0700, Nathan Nobbe wrote:
>
>> On Sat, Nov 17, 2012 at 11:09 PM, Ron Piggott <
>> ron.piggott@actsministries.org> wrote:
>>
>> > I have made the following variable in a form: (I am referring the
>> > <select> )
>> >
>> > <?php
>> >
>> > $row['promo_code_prefix'] = 42;
>> > $row['promo_code_suffix'] = 2;
>> >
>> > echo "<select name=\"distributor-" .
>> > $row['promo_code_prefix'] . "-" .
>> > $row['promo_code_suffix'] . "\" style=\"text-align:
>> > center;\">\r\n";
>> >
>> > ?>
>> >
>> > It could be wrote:
>> >
>> > <?php
>> >
>> > echo $distributor-42-2;
>> >
>> > ?>
>> >
>> > Only PHP is treating the hyphen as a minus sign --- which in turn is
>> > causing a syntax error.
>> >
>> > How do I retrieve the value of this variable and over come the “minus”
>> > sign that is really a hyphen?
>> >
>>
>> php > ${distributor-42-2} = 5;
>> php > echo ${distributor-42-2};
>> 5
>>
>> I think that's it.
>>
>> -nathan
>
>
> I'd just try and avoid the hyphens in the variable names in the first
> place if you can. Can you guarantee that everyone working on this system
> will know when to encapsulate the variables in braces?
>
> Thanks,
> Ash
> http://www.ashleysheridan.co.uk
>
>
Agreed.
From http://www.php.net/manual/en/language.variables.basics.php
:
"Variable names follow the same rules as other labels in PHP. A
valid variable name starts with a letter or underscore, followed
by any number of letters, numbers, or underscores."
The ${var} circumvents this (somewhat), but in the case above, it
would be better to avoid the dashes and use underscores.