Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:44285 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 19663 invoked from network); 15 Jun 2009 13:48:05 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 15 Jun 2009 13:48:05 -0000 Authentication-Results: pb1.pair.com smtp.mail=david.zuelke@bitextender.com; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=david.zuelke@bitextender.com; sender-id=unknown Received-SPF: error (pb1.pair.com: domain bitextender.com from 80.237.132.12 cause and error) X-PHP-List-Original-Sender: david.zuelke@bitextender.com X-Host-Fingerprint: 80.237.132.12 wp005.webpack.hosteurope.de Received: from [80.237.132.12] ([80.237.132.12:35285] helo=wp005.webpack.hosteurope.de) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 08/05-27478-311563A4 for ; Mon, 15 Jun 2009 09:48:03 -0400 Received: from munich.bitxtender.net ([85.183.90.3] helo=[10.224.254.2]); authenticated by wp005.webpack.hosteurope.de running ExIM with esmtpsa (TLSv1:RC4-SHA:128) id 1MGCXY-0007SY-Co; Mon, 15 Jun 2009 15:48:00 +0200 Cc: Message-ID: To: "Matt Wilmas" In-Reply-To: Content-Type: multipart/signed; boundary=Apple-Mail-5-478507625; micalg=sha1; protocol="application/pkcs7-signature" Mime-Version: 1.0 (Apple Message framework v935.3) X-Priority: 3 Date: Mon, 15 Jun 2009 15:47:59 +0200 References: <973FE469-3C5C-4096-B7EE-A16B518555DA@bitextender.com> X-Mailer: Apple Mail (2.935.3) X-bounce-key: webpack.hosteurope.de;david.zuelke@bitextender.com;1245073683;20cfd59e; Subject: Re: [PHP-DEV] zend_hash_update question From: david.zuelke@bitextender.com (=?WINDOWS-1252?Q?David_Z=FClke?=) --Apple-Mail-5-478507625 Content-Type: text/plain; charset=ISO-8859-1; format=flowed; delsp=yes Content-Transfer-Encoding: quoted-printable On 15.06.2009, at 15:40, Matt Wilmas wrote: > Hi David, Hey Matt, > ----- Original Message ----- > From: "David Z=FClke" > Sent: Monday, June 15, 2009 > >> Hi folks, >> >> while fixing http://bugs.php.net/bug.php?id=3D48557 I was wondering =20= >> why zend_hash_update doesn't automatically convert numeric strings =20= >> to integers. >> >> Doing $foo =3D array('1' =3D> 'bar'); actually results in an integer =20= >> key with value 1, not in a string. The problem in the bug above =20 >> was that when ext/soap decodes keys from a hashmap, it won't =20 >> convert numeric string keys to integers. As a result, such items =20 >> in an array were never accessible from PHP code (that is, unless =20 >> you did some array_keys()/array_values() stunts, of course). >> >> Is this intentional? It seems that every internal feature that =20 >> would like to deal with hashes needs to implement this string->int =20= >> casting behavior of PHP itself. Why doesn't zend_hash_update() do =20= >> it automatically? > > I saw the patch there for Bug #48557, and the is_numeric_string() + =20= > zend_hash/index/_update() isn't necessary -- that's what =20 > zend_symtable_update() is for. :-) It's used elsewhere and takes =20 > care of checking for numeric string keys. Aaah! > hash_update() used to do that until the "symtable" variation was =20 > added several years ago, and there were places in PHP that weren't =20 > updated and had this issue. Obviously there's still one at least! =20= > (Or maybe that's newer code that simply used the wrong function in =20 > the first place...) Yeah I guess that's the case here. > I'm assuming hash_update() is intended to be an optimized version by =20= > only working with strings, in places where it's already known -- in =20= > the engine, walking through arrays where the type of key is already =20= > known, etc. > > Kinda confusing, but hope that helps. Seems like they should've =20 > *added* a new function that does what hash_update() now does, =20 > instead of basically renaming the old version to =20 > symtable_update(). :-/ It does help, absolutely. Thanks a lot! - David= --Apple-Mail-5-478507625 Content-Disposition: attachment; filename=smime.p7s Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIGXDCCAxUw ggJ+oAMCAQICEHvgrI6DXM4XmK4XvhB7lh4wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UEBhMCWkEx JTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQ ZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA4MDgyMjE0MjEzOVoXDTA5MDgyMjE0MjEz OVowTjEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjErMCkGCSqGSIb3DQEJARYcZGF2 aWQuenVlbGtlQGJpdGV4dGVuZGVyLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB ANx+fe+8oUaO+fotZryRBmD3NAP00QikUIqIyZKiwJ4BS9M8DdqN0lAh443rdw1h/H0NVkDMv7+7 MnSUYKU+BTwulvU7WDGLm7JGkXXWkGl5vHUnUWltUkk8ImUDiunYPnuyUVyQlnZkp1ThihYoR4xo MmiiC+6mHLl8FzMKimOU/UREpGfyLqYhsNdXiVgm+W8feO6aY3fDaenn9EVZEXJs6t7KxLpCIlD2 8+0dHlX+91vV4a9zfMObjEkLW3w/uBTT+uHypySHo/EWw0/pOD34sMdhSh0Xyr4un+Uv/DHH1ft3 5TJq6DEIrIL4iUpGa7Nsqjoah5SgpWwJY+gWaC8CAwEAAaNcMFowDgYDVR0PAQH/BAQDAgSwMBEG CWCGSAGG+EIBAQQEAwIFIDAnBgNVHREEIDAegRxkYXZpZC56dWVsa2VAYml0ZXh0ZW5kZXIuY29t MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEFBQADgYEAbEPiMjevqmbl2NuGieZkF5fNV1Uhr0dL wGDDxIcIHGnBeEBVy/5NpAKJUCU4lqG+bqD1S4MdyyLxvzlhOSZEqjcEwtwXqLVsaDakYFHsRGaS DU160+1b/wlf8/OR5tof7y5MA8p6MSQHjXWOy38A71wvwFowGZPF5lY617W5mUMwggM/MIICqKAD AgECAgENMA0GCSqGSIb3DQEBBQUAMIHRMQswCQYDVQQGEwJaQTEVMBMGA1UECBMMV2VzdGVybiBD YXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAYBgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYD VQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMSQwIgYDVQQDExtUaGF3dGUgUGVy c29uYWwgRnJlZW1haWwgQ0ExKzApBgkqhkiG9w0BCQEWHHBlcnNvbmFsLWZyZWVtYWlsQHRoYXd0 ZS5jb20wHhcNMDMwNzE3MDAwMDAwWhcNMTMwNzE2MjM1OTU5WjBiMQswCQYDVQQGEwJaQTElMCMG A1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNv bmFsIEZyZWVtYWlsIElzc3VpbmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMSmPFVz VftOucqZWh5owHUEcJ3f6f+jHuy9zfVb8hp2vX8MOmHyv1HOAdTlUAow1wJjWiyJFXCO3cnwK4Va qj9xVsuvPAsH5/EfkTYkKhPPK9Xzgnc9A74r/rsYPge/QIACZNenprufZdHFKlSFD0gEf6e20Txh BEAeZBlyYLf7AgMBAAGjgZQwgZEwEgYDVR0TAQH/BAgwBgEB/wIBADBDBgNVHR8EPDA6MDigNqA0 hjJodHRwOi8vY3JsLnRoYXd0ZS5jb20vVGhhd3RlUGVyc29uYWxGcmVlbWFpbENBLmNybDALBgNV HQ8EBAMCAQYwKQYDVR0RBCIwIKQeMBwxGjAYBgNVBAMTEVByaXZhdGVMYWJlbDItMTM4MA0GCSqG SIb3DQEBBQUAA4GBAEiM0VCD6gsuzA2jZqxnD3+vrL7CF6FDlpSdf0whuPg2H6otnzYvwPQcUCCT cDz9reFhYsPZOhl+hLGZGwDFGguCdJ4lUJRix9sncVcljd2pnDmOjCBPZV+V2vf3h9bGCE6u9uo0 5RAaWzVNd+NWIXiC3CEZNd4ksdMdRv9dX2VPMYIDEDCCAwwCAQEwdjBiMQswCQYDVQQGEwJaQTEl MCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBl cnNvbmFsIEZyZWVtYWlsIElzc3VpbmcgQ0ECEHvgrI6DXM4XmK4XvhB7lh4wCQYFKw4DAhoFAKCC AW8wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDkwNjE1MTM0NzYw WjAjBgkqhkiG9w0BCQQxFgQUA3/h/SJNIwr3/GPFTlHusLHwmiMwgYUGCSsGAQQBgjcQBDF4MHYw YjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAq BgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAhB74KyOg1zOF5iuF74Q e5YeMIGHBgsqhkiG9w0BCRACCzF4oHYwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBD b25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJ c3N1aW5nIENBAhB74KyOg1zOF5iuF74Qe5YeMA0GCSqGSIb3DQEBAQUABIIBAMJQluDAcph879Fp GrcdnoGbPmeylF4KR6vnzU3UAZgUTiBvTNrV5vm0fRCKky6+nrgInlWu95EzZu3ZBhLSr48heqFF kKlyjYt+6wXaigIo7ABhUkes5fX0S8wlBLVzrhmiR7Rd8GM5ZtXhX+4h/kKK+WsA1F64+qjfrXxq KxQ/8snp36iozfEmUf+m9FY/Iv2HoEiKtGUilvhvM11khEj2+t9vJCIGvMSo/ibzFGdUDxwLYsat EybvMgrcDOnBoF82l4i6QzZJjY0qRqnM0/DcVnl4TVMgvoOECfFkF8G2o+kqBoD+lYnhbF1wN+iX XkHauGUXjIR0FgW4iWLbw9sAAAAAAAA= --Apple-Mail-5-478507625--