[thelist] single quotes and arrays
Nadeem Hosenbokus
nadeem at nadeemh.com
Sun Apr 24 06:57:51 CDT 2016
Hello,
I'm glad that this is active again, etc, etc. Onto the problem:
In the first instance, an array key is string so $_GET[pageid] should
actually be $_GET['pageid']. $_GET is an array, "pageid" is a key which is
treated as a string.
In the second instance, you get a fatal error because of the general syntax.
Direct references to variables work inside double quotes:
$a = 0;
$b = 'Label';
echo "<option value="$a">$b</option>";
But PHP operations do *not* work inside double quote (at least not without
curly brackets but I won't go into that). Your particular code is asking PHP
to reference a value inside an array.
If you iterate through your array, you should be able to do this:
$output = '';
foreach($row as $id=>$title){
$output .= "<option value=\"$id\">$title</option>";
}
echo $output;
Personally I don't like using escaped double quotes, so the other way is
like this:
echo('<option
value="'.$row['id'].'">'.$row['title'].'</option>'."\n");
Note that the \n has to be in double quotes.
Hope this helps a bit.
Nadeem Hosenbokus
(230) 5766 9169
www.nadeemh.com
http://mu.linkedin.com/in/nadeemhosenbokus
-----Original Message-----
From: thelist-bounces at lists.evolt.org
[mailto:thelist-bounces at lists.evolt.org] On Behalf Of Garth Hagerman
Sent: 24 April 2016 04:52
To: thelist at lists.evolt.org
Subject: [thelist] single quotes and arrays
Hi everybody-
Since The List is alive again (hooray!), here's a query.
I've been making the same boo-boo over and over for years. I have a rote
mechanical understanding of what to do about it, but I do not understand the
conceptual background.
In PHP, I pass info to another page using a form. The page receiving the
info has a line like this:
$pageid = $_GET[pageid];
This works, so there doesn't seem to be anything wrong, so I do it over and
over and over. But it logs something like this into the error_log:
"PHP Notice: Use of undefined constant pageid - assumed 'pageid' ".
Since this happens a lot, the error_log gets to be a very large file.
So, I understand how to stop getting that notice: put single quotes around
pageid.
But why? pageid isn't a string, it's the name of an array element. If I do
the same single quote thing with other arrays, something like:
echo("<option value=\"$row['id']\">$row['title']</option>\n");
it's a fatal error and the whole page explodes.
I've tried to find a reasonable explanation online, but haven't found
anything which makes the little "eureka!" light over my head light up.
Thanks in advance
Garth
* * * * * * * * * * * * * * * *
my online portfolio
http://garthhagerman.com/
--
* * Please support the community that supports you. * *
http://evolt.org/help_support_evolt/
For unsubscribe and other options, including the Tip Harvester and archives
of thelist go to: http://lists.evolt.org Workers of the Web, evolt !
More information about the thelist
mailing list