I may have misunderstood what you intended (apologies if so) but this code: title = 'daniel' $_GET[ title ] does not resolve to $_GET['daniel']. Its usage would be like this: $title = 'daniel'; $_GET['title'] = $title; echo $_GET['title']; would print out "daniel". echo $_GET['daniel'] would result in some kind of error because the key isn't set in the array. 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 Volkan Özçelik Sent: 24 April 2016 06:08 To: thelist at lists.evolt.org Subject: Re: [thelist] single quotes and arrays My guesstimate is: In `$pageid = $_GET[pageid];` you are doing a direct assignment and hence the PHP interpreter can get clever enough to "catch" what you meant. In ` ""<option value=\"$row['id']\">$row['title']</option>\n" ` however, it is string interpolation; so it’s an additional level of indirection, and PHP interpreter is not ready to infer what you meant and erring out. As a best practice you should always be using quoted attributes as not using them may be mixed with a variable with the same name. ( e.g. ` title = 'daniel' $_GET[ title ] ` will resolve to $_GET['daniel'] which probably will be undefined. Just my 2c. Would love to hear other PHP experts’ ideas on that though. HTH. Volkan. On Sat, Apr 23, 2016 at 5:52 PM Garth Hagerman <hagerman at mcn.org> wrote: > 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 ! > -- * * 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 !