Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:87969 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 99101 invoked from network); 1 Sep 2015 02:55:10 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 1 Sep 2015 02:55:10 -0000 Authentication-Results: pb1.pair.com header.from=rasmus@lerdorf.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=rasmus@lerdorf.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain lerdorf.com designates 209.85.220.50 as permitted sender) X-PHP-List-Original-Sender: rasmus@lerdorf.com X-Host-Fingerprint: 209.85.220.50 mail-pa0-f50.google.com Received: from [209.85.220.50] ([209.85.220.50:34587] helo=mail-pa0-f50.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id E6/18-39890-B8315E55 for ; Mon, 31 Aug 2015 22:55:09 -0400 Received: by pabzx8 with SMTP id zx8so159623018pab.1 for ; Mon, 31 Aug 2015 19:55:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:content-transfer-encoding:message-id:references :to; bh=7CpkTyMJjwpbnAareDXDNF7KvG9PpOExAYCeD3YxOkU=; b=m0M5mhTBXT5AU8D57owZ0oYGiLQD6LI6iHC7fYd6Uv86hmrq4DWjG+BSI99/KzJ+E2 +VB/GzoMckRBJaBPL27FySGvYfP7ugHT1GLpIvPQD7TGfoASy0sf0nhPCsf+Cwyroo59 xgK/L/Q7SoE1lnFVGmcDVulFcPl16nelDK7ivN/phCf67fi4OKvJsY7QEXMu3uqDV/KW 8J4m8s2Q0UqC2E8x8slA9kg2Sb0WHfQHIr4KTC70EJjP8stmPgSoWQGYk3U5tc2Cwr66 M2plT+HO2ncmzW6klaaQ4cZGdJXHZixkefh3K0jc3FRMjxQi0vs1csGiNm0AmosLZ/pI b7cw== X-Gm-Message-State: ALoCoQmTvDOMhaXBINUahsqp2P0VTexjJhBOU3dsQtXdTNCG4nZZFzr+mBu0eaWqjMsuQxxeE7S7 X-Received: by 10.68.169.69 with SMTP id ac5mr43558692pbc.14.1441076104156; Mon, 31 Aug 2015 19:55:04 -0700 (PDT) Received: from [192.168.200.164] (c-50-131-44-225.hsd1.ca.comcast.net. [50.131.44.225]) by smtp.gmail.com with ESMTPSA id kl6sm16127391pdb.79.2015.08.31.19.55.01 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 31 Aug 2015 19:55:01 -0700 (PDT) Content-Type: multipart/signed; boundary=Apple-Mail-F773A958-85AF-4980-A10C-D1E1C9D9A7B2; protocol="application/pkcs7-signature"; micalg=sha1 Mime-Version: 1.0 (1.0) X-Mailer: iPad Mail (12H321) In-Reply-To: Date: Mon, 31 Aug 2015 19:55:00 -0700 Cc: Stanislav Malyshev , Nikita Nefedov , "internals@lists.php.net" Content-Transfer-Encoding: 7bit Message-ID: <7BCB36EE-56C8-441F-BF40-954D9FA912A9@lerdorf.com> References: <55E4C19F.4060704@gmail.com> <55E4F029.10104@gmail.com> To: Bob Weinand Subject: Re: [PHP-DEV] [RFC] [Discussion] Short Closures From: rasmus@lerdorf.com (Rasmus Lerdorf) --Apple-Mail-F773A958-85AF-4980-A10C-D1E1C9D9A7B2 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable > On Aug 31, 2015, at 18:04, Bob Weinand wrote: >=20 > =46rom the RFC: >> all variables used in the body of the anonymous function will automatical= ly be bound to the anonymous function closure from the defining scope >=20 > The implementation is not capturing all the variables from the outer scope= , but strictly only these accessed by the variables in the Closure itself. H= ence that shouldn't be much of an issue. This magic scares me. I made a very deliberate decision In the very first im= plementation of PHP to avoid scope side-effects like this. Inside a function= everything is local unless explicitly declared not to be. This has carried t= hrough for the past 20+ years in slightly different ways, but the basic rule= has stayed consistent even for closures. Unless explicitly declared via a u= se clause, every variable inside a closure is local and no cross-scope varia= ble name side-effects are possible. I am not convinced that this feature is w= orth breaking that longstanding basic tenet of the language. -Rasmus= --Apple-Mail-F773A958-85AF-4980-A10C-D1E1C9D9A7B2 Content-Type: application/pkcs7-signature; name=smime.p7s Content-Disposition: attachment; filename=smime.p7s Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIGWTCCBlUw ggU9oAMCAQICAlhvMA0GCSqGSIb3DQEBCwUAMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3Rh cnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzE4 MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMiBQcmltYXJ5IEludGVybWVkaWF0ZSBDbGllbnQgQ0Ew HhcNMTQxMTE1MTIwODQwWhcNMTYxMTE1MDIwMDExWjByMQswCQYDVQQGEwJVUzETMBEGA1UECBMK Q2FsaWZvcm5pYTESMBAGA1UEBxMJU3Vubnl2YWxlMRcwFQYDVQQDEw5SYXNtdXMgTGVyZG9yZjEh MB8GCSqGSIb3DQEJARYScmFzbXVzQGxlcmRvcmYuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A MIIBCgKCAQEAnfzDSNz3/ljL2v7NT2zqMzN6SXf8Qzb7nvutQXWrYlhgVe3IrnkhcwCswDTCLMQz UmzT3YmzaQ+LwuoWYdCwuue4ZWhqYvVSI0b93togBNXt/0Pk4HC1PM/WlxdmY2V5jKT90k/1vh4X DF8P8hEflN32Cfum9cUT21roqdhQyOdvZcVSpd+mFFVNwJ963GbEL1UiH1CD1fybS+mnVNAZ5wAV SpJs1y+ZS+Nw8GWhP/KNZfbXsvCcg5K+9aM/a6FCLMG3aOcbUUfgkshq24WGOa6hmJBmJezCEPYs PAjFGJDlm/3itm5qg90brivL0GBSfp5K0h3D4AYc8xE2E0UAwwIDAQABo4IC2DCCAtQwCQYDVR0T BAIwADALBgNVHQ8EBAMCBLAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMB0GA1UdDgQW BBRdGtlis2LEefYTwONK6fgMt+ZNZTAfBgNVHSMEGDAWgBSuVYNv7DHKufcd+q9rMfPIHeOsuzAd BgNVHREEFjAUgRJyYXNtdXNAbGVyZG9yZi5jb20wggFMBgNVHSAEggFDMIIBPzCCATsGCysGAQQB gbU3AQIDMIIBKjAuBggrBgEFBQcCARYiaHR0cDovL3d3dy5zdGFydHNzbC5jb20vcG9saWN5LnBk ZjCB9wYIKwYBBQUHAgIwgeowJxYgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwAwIB ARqBvlRoaXMgY2VydGlmaWNhdGUgd2FzIGlzc3VlZCBhY2NvcmRpbmcgdG8gdGhlIENsYXNzIDIg VmFsaWRhdGlvbiByZXF1aXJlbWVudHMgb2YgdGhlIFN0YXJ0Q29tIENBIHBvbGljeSwgcmVsaWFu Y2Ugb25seSBmb3IgdGhlIGludGVuZGVkIHB1cnBvc2UgaW4gY29tcGxpYW5jZSBvZiB0aGUgcmVs eWluZyBwYXJ0eSBvYmxpZ2F0aW9ucy4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5zdGFy dHNzbC5jb20vY3J0dTItY3JsLmNybDCBjgYIKwYBBQUHAQEEgYEwfzA5BggrBgEFBQcwAYYtaHR0 cDovL29jc3Auc3RhcnRzc2wuY29tL3N1Yi9jbGFzczIvY2xpZW50L2NhMEIGCCsGAQUFBzAChjZo dHRwOi8vYWlhLnN0YXJ0c3NsLmNvbS9jZXJ0cy9zdWIuY2xhc3MyLmNsaWVudC5jYS5jcnQwIwYD VR0SBBwwGoYYaHR0cDovL3d3dy5zdGFydHNzbC5jb20vMA0GCSqGSIb3DQEBCwUAA4IBAQDGlvK1 mwlJw04/3SXtCTScuJwNxhr6U6UeFjtzpArczqx9IeXjHwg8TG0wh45nbLb/XiemCmkkM0Smggxg xIyJsXCe6PVB7CsBVLT7i0EieCyxvEQO0HcHtLWknnAcwlgrzKopQxkRH+tMhZ0GaCpBuIQXYEGJ 25dQQAY76iT/1k0ckui2BAPV0HP3bcYnAQ3/0js86d5qrzWJWBBHcc+yj7CBBkmX2YoEg6/4o52Z nJPXDYnJAvTO3hVXJwzF5GkEskf4OK7oD7T9bZOLFt8B5g25UEGmMbS9cCq73DzdTKRdU69FID4J qkPf0YCIk0pJDDWRj/MxiPkhY6PZoao+MYIDbDCCA2gCAQEwgZMwgYwxCzAJBgNVBAYTAklMMRYw FAYDVQQKEw1TdGFydENvbSBMdGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0 ZSBTaWduaW5nMTgwNgYDVQQDEy9TdGFydENvbSBDbGFzcyAyIFByaW1hcnkgSW50ZXJtZWRpYXRl IENsaWVudCBDQQICWG8wCQYFKw4DAhoFAKCCAa0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc BgkqhkiG9w0BCQUxDxcNMTUwOTAxMDI1NTAwWjAjBgkqhkiG9w0BCQQxFgQUEpKo+vkM5mLKPlgT 1rMeXeFaJZgwgaQGCSsGAQQBgjcQBDGBljCBkzCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0 YXJ0Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcx ODA2BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDIgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENB AgJYbzCBpgYLKoZIhvcNAQkQAgsxgZaggZMwgYwxCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1TdGFy dENvbSBMdGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBTaWduaW5nMTgw NgYDVQQDEy9TdGFydENvbSBDbGFzcyAyIFByaW1hcnkgSW50ZXJtZWRpYXRlIENsaWVudCBDQQIC WG8wDQYJKoZIhvcNAQEBBQAEggEAlFbb9FjQOc6IZA3jJL4sEFDkN/xDPeA/5HcHJhEIvWQyCWsw rKm+dSPqfUOq0IUcqo4NfDnfKVIevO+smPF1G7X26CBiVT7CpsLG7OlFoXvfBEGOim6h19F1K0bn Ccx8rawC+bsJPnqfcPripRkQNT06qf84wkgQG81TGTg6i1F8ZTCJI0RwbVry2ryICV84MzVdUXU9 zozg6ONMooxN/HZJ/y7eTLZ6mmYPbmPdhICKyWw0RKzYbztwJfAqPXjFbnz50UuOPc9RLGFJem51 FQD1LODFL0m+tLj7Py+f2oFGdeSPy29qgYZI/bKpMAcK5GIdgj6pKM1/t3O1scwvtQAAAAAAAA== --Apple-Mail-F773A958-85AF-4980-A10C-D1E1C9D9A7B2--