array variables with or without quotes

array variables with or without quotes

am 22.02.2006 06:22:55 von 2dogs

I recently encountered a situation where I had to retrieve data from a MYSQL
database table with a field named "include". My code looked like this:

$content_result = mysql_query('SELECT * FROM calander') or
die(mysql_error());
$content_row = mysql_fetch_array($content_result);
if ($content_row[include])
{go do something;}

When I tried to run this, PHP treated the word -include- as a control
structure rather than an index name. Understandable. So, I put it in single
quotes ('include') to see what would happen and it works fine. But I don't
understand why!

What is the difference between $content_row [include] and
$content_row['include']? I have been unable to resolve this question in the
php manual, I need enlightenment.

2dogs

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Re: array variables with or without quotes

am 22.02.2006 06:52:39 von Chris

> When I tried to run this, PHP treated the word -include- as a control
> structure rather than an index name. Understandable. So, I put it in single
> quotes ('include') to see what would happen and it works fine. But I don't
> understand why!
>
> What is the difference between $content_row [include] and
> $content_row['include']? I have been unable to resolve this question in the
> php manual, I need enlightenment.

Without quotes it could be constant or defined variable:

define('variable', 'blah blah blah');

so then I can just use:

define('variable', 'blah blah blah');
echo variable;
?>

will print out:

blah blah blah

So in your case, it's checking for a defined variable called 'include'
which doesn't exist (and prints out a warning/notice).

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Re: array variables with or without quotes

am 22.02.2006 21:29:56 von Chuck Anderson

2dogs wrote:

>I recently encountered a situation where I had to retrieve data from a MYSQL
>database table with a field named "include". My code looked like this:
>
>$content_result = mysql_query('SELECT * FROM calander') or
>die(mysql_error());
>$content_row = mysql_fetch_array($content_result);
>if ($content_row[include])
> {go do something;}
>
>When I tried to run this, PHP treated the word -include- as a control
>structure rather than an index name. Understandable. So, I put it in single
>quotes ('include') to see what would happen and it works fine. But I don't
>understand why!
>
>What is the difference between $content_row [include] and
>$content_row['include']? I have been unable to resolve this question in the
>php manual, I need enlightenment.
>
>2dogs
>
>
http://www.php.net/manual/en/language.types.array.php#langua ge.types.array.foo-bar

--
*****************************
Chuck Anderson • Boulder, CO
http://www.CycleTourist.com
Integrity is obvious.
The lack of it is common.
*****************************

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

RE: Re: array variables with or without quotes

am 22.02.2006 21:58:14 von Jason Karns

------=_NextPart_000_015C_01C637C8.C95E86C0
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit

I believe it is because without the quotes, it is expecting a predefined
constant. With the quotes, it is expecting an array key. This is why if you
use a word that is not defined as a constant, php will first look for it as
a constant, won't find it, then looks through the array treating it like a
key. If it is found as a constant, then the constant's value is used as the
key.

Jason

-----Original Message-----
From: Chuck Anderson [mailto:hairtwoday@gmail.com]
Sent: Wednesday, February 22, 2006 3:30 PM
To: php-general@lists.php.net
Subject: [PHP] Re: array variables with or without quotes

2dogs wrote:

>I recently encountered a situation where I had to retrieve data from a
>MYSQL database table with a field named "include". My code looked like
this:
>
>$content_result = mysql_query('SELECT * FROM calander') or
>die(mysql_error()); $content_row = mysql_fetch_array($content_result);
>if ($content_row[include])
> {go do something;}
>
>When I tried to run this, PHP treated the word -include- as a control
>structure rather than an index name. Understandable. So, I put it in
>single quotes ('include') to see what would happen and it works fine.
>But I don't understand why!
>
>What is the difference between $content_row [include] and
>$content_row['include']? I have been unable to resolve this question in
>the php manual, I need enlightenment.
>
>2dogs
>
>
http://www.php.net/manual/en/language.types.array.php#langua ge.types.array.f
oo-bar

--
*****************************
Chuck Anderson . Boulder, CO
http://www.CycleTourist.com
Integrity is obvious.
The lack of it is common.
*****************************

--
PHP General Mailing List (http://www.php.net/) To unsubscribe, visit:
http://www.php.net/unsub.php


------=_NextPart_000_015C_01C637C8.C95E86C0
Content-Type: application/x-pkcs7-signature;
name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="smime.p7s"

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEH AQAAoIII9TCCAn0w
ggHmoAMCAQICECCiA6pLAuHQDGnH8XjLYicwDQYJKoZIhvcNAQEEBQAwYjEL MAkGA1UEBhMCWkEx
JTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNV BAMTI1RoYXd0ZSBQ
ZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA1MTIyMDE2NTE1M1oX DTA2MTIyMDE2NTE1
M1owYDEOMAwGA1UEBBMFS2FybnMxDjAMBgNVBCoTBUphc29uMRQwEgYDVQQD EwtKYXNvbiBLYXJu
czEoMCYGCSqGSIb3DQEJARYZa2FybnNqQGNzZS5vaGlvLXN0YXRlLmVkdTCB nzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEA9IF+hWaKqiEfwKRu3das+Lh7IvQB5RAckj8sW/0m TBRem1di+VWoKdDi
UPEe0zpcCoEvp70CtpFlFdSN94J4KBzBvLg6jPnIznCE/Nq6zsWyhyFIKJfi A96GypQ+ntJIINt1
zubKxGRTaIGVBOsl/QwihfnwimhmzogKheYZO28CAwEAAaM2MDQwJAYDVR0R BB0wG4EZa2FybnNq
QGNzZS5vaGlvLXN0YXRlLmVkdTAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEB BAUAA4GBAFdPDsD3
44yI6uKXQnBOxfTv7wM43PtN7Yf9BQNUaALkJIw/haeSwqvZLBt/rWfH9LOx eecaqLWQ4VAFgnG4
PbXsKebFvUXyp/D7JMNYbIiwt+J/GU3/bnio1oAEIBjxl6rVxhQurfL0RtSY iLGW+QSvVmNvHQyD
ViolxYYRrb8FMIIDLTCCApagAwIBAgIBADANBgkqhkiG9w0BAQQFADCB0TEL MAkGA1UEBhMCWkEx
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRow GAYDVQQKExFUaGF3
dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNl cyBEaXZpc2lvbjEk
MCIGA1UEAxMbVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIENBMSswKQYJKoZI hvcNAQkBFhxwZXJz
b25hbC1mcmVlbWFpbEB0aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIw MTIzMTIzNTk1OVow
gdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNV BAcTCUNhcGUgVG93
bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRp ZmljYXRpb24gU2Vy
dmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVl bWFpbCBDQTErMCkG
CSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTCBnzAN BgkqhkiG9w0BAQEF
AAOBjQAwgYkCgYEA1GnX1LCUZFtx6UfYDFG26nKRsIRefS0Nj3sS34UldSh0 OkIsYyeflXtL734Z
hx2G6qPduc6WZBrCFG5ErHzmj+hND3EfQDimAKOHePb5lIZererAXnbr2RSj XW56fAylS1V/Bhkp
f56aJtVquzgkCGqYx7Hao5iR/Xnb5VrEHLkCAwEAAaMTMBEwDwYDVR0TAQH/ BAUwAwEB/zANBgkq
hkiG9w0BAQQFAAOBgQDH7JJ+Tvj1lqVnYiqk8E0RYNBvjWBYYawmu1I1XAjP MPuoSpaKH2JCI4wX
D/S6ZJwXrEcp352YXtJsYHFcoqzceePnbgBHH7UNKOgCneSa/RP0ptl8sfjc XyMmCZGAc9AUG95D
qYMl8uacLxXK/qarigd1iwzdUYRr5PjRzneigTCCAz8wggKooAMCAQICAQ0w DQYJKoZIhvcNAQEF
BQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQ BgNVBAcTCUNhcGUg
VG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0Nl cnRpZmljYXRpb24g
U2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBG cmVlbWFpbCBDQTEr
MCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTAe Fw0wMzA3MTcwMDAw
MDBaFw0xMzA3MTYyMzU5NTlaMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxU aGF3dGUgQ29uc3Vs
dGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJl ZW1haWwgSXNzdWlu
ZyBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxKY8VXNV+065ypla HmjAdQRwnd/p/6Me
7L3N9VvyGna9fww6YfK/Uc4B1OVQCjDXAmNaLIkVcI7dyfArhVqqP3FWy688 Cwfn8R+RNiQqE88r
1fOCdz0Dviv+uxg+B79AgAJk16emu59l0cUqVIUPSAR/p7bRPGEEQB5kGXJg t/sCAwEAAaOBlDCB
kTASBgNVHRMBAf8ECDAGAQH/AgEAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6 Ly9jcmwudGhhd3Rl
LmNvbS9UaGF3dGVQZXJzb25hbEZyZWVtYWlsQ0EuY3JsMAsGA1UdDwQEAwIB BjApBgNVHREEIjAg
pB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxhYmVsMi0xMzgwDQYJKoZIhvcNAQEF BQADgYEASIzRUIPq
Cy7MDaNmrGcPf6+svsIXoUOWlJ1/TCG4+DYfqi2fNi/A9BxQIJNwPP2t4WFi w9k6GX6EsZkbAMUa
C4J0niVQlGLH2ydxVyWN3amcOY6MIE9lX5Xa9/eH1sYITq726jTlEBpbNU13 41YheILcIRk13iSx
0x1G/11fZU8xggL4MIIC9AIBATB2MGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQK ExxUaGF3dGUgQ29u
c3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwg RnJlZW1haWwgSXNz
dWluZyBDQQIQIKIDqksC4dAMacfxeMtiJzAJBgUrDgMCGgUAoIIB2DAYBgkq hkiG9w0BCQMxCwYJ
KoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wNjAyMjIyMDU4MTNaMCMGCSqG SIb3DQEJBDEWBBRA
FMD+wWCfnjqDaz4VjBP0sdYhOzBnBgkqhkiG9w0BCQ8xWjBYMAoGCCqGSIb3 DQMHMA4GCCqGSIb3
DQMCAgIAgDANBggqhkiG9w0DAgIBQDAHBgUrDgMCBzANBggqhkiG9w0DAgIB KDAHBgUrDgMCGjAK
BggqhkiG9w0CBTCBhQYJKwYBBAGCNxAEMXgwdjBiMQswCQYDVQQGEwJaQTEl MCMGA1UEChMcVGhh
d3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBl cnNvbmFsIEZyZWVt
YWlsIElzc3VpbmcgQ0ECECCiA6pLAuHQDGnH8XjLYicwgYcGCyqGSIb3DQEJ EAILMXigdjBiMQsw
CQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg THRkLjEsMCoGA1UE
AxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIElzc3VpbmcgQ0ECECCiA6pL AuHQDGnH8XjLYicw
DQYJKoZIhvcNAQEBBQAEgYBhqUQXPedY1o49L02kX4BypE/LGgj9z00Yzs3d sGJtGaukP3UKYERv
Myrx4knbtxOo+AHLcCzuVlZxj7Axii7/trZwQ6vU3oWWdM5RlSBn7t/4u72t TSRszm00GkmaxbRk
MEsnw/FioBAlqYqlzbFEczg243UvhsKZyIRsqCux2gAAAAAAAA==

------=_NextPart_000_015C_01C637C8.C95E86C0--

Re: array variables with or without quotes

am 23.02.2006 04:08:05 von 2dogs

Chuck, you are the man! I decided to reread the manual word for word but
have only gotten through Strings as of last night. Thanks for zeroing me in
on the right spot.

txs
2dogs





"Chuck Anderson" wrote in message
news:34.21.50685.8C9CCF34@pb1.pair.com...
> 2dogs wrote:
>
>>I recently encountered a situation where I had to retrieve data from a
>>MYSQL database table with a field named "include". My code looked like
>>this:
>>
>>$content_result = mysql_query('SELECT * FROM calander') or
>>die(mysql_error());
>>$content_row = mysql_fetch_array($content_result);
>>if ($content_row[include])
>> {go do something;}
>>
>>When I tried to run this, PHP treated the word -include- as a control
>>structure rather than an index name. Understandable. So, I put it in
>>single quotes ('include') to see what would happen and it works fine. But
>>I don't understand why!
>>
>>What is the difference between $content_row [include] and
>>$content_row['include']? I have been unable to resolve this question in
>>the php manual, I need enlightenment.
>>
>>2dogs
> http://www.php.net/manual/en/language.types.array.php#langua ge.types.array.foo-bar
>
> --
> *****************************
> Chuck Anderson • Boulder, CO
> http://www.CycleTourist.com
> Integrity is obvious.
> The lack of it is common.
> *****************************

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php