Hello, On Mon, Nov 16, 2009 at 2:10 PM, Mathieu Suen <mathieu.s...@easyflirt.com>wrote:
> Pierre Joye a écrit : > > On Mon, Nov 16, 2009 at 12:07 PM, Mathieu Suen >> <mathieu.s...@easyflirt.com> wrote: >> >> • Pensez à l'environnement, n'imprimez cet e-mail qu'en cas de réelle >>> nécessité >>> >> >> Discussing endlessly an issue only because you do not understand it is >> also an environmental problem, please consider to read the manual and >> stop to use every single channel to ask the same questions again and >> again. >> >> Salutations, >> > > That's not a question, look at what lisp dose and scheme. > Look at the lambda calculus etc. > > The variable inside the foreach should not be captured outside. > Like function argument. And again and again you are doing the same > mistake: > Static scoping is closely related to variable declaration. In PHP, there is no such thing as a variable declaration statement (apart from function arguments or class members, which are correcly scoped). There is only an assign statement, that may introduce a new variable, or not. Without such a declaration statement, static scoping doesn't make much sense. For example: if (..) { $a = 2; } else { $a = 3; } echo $a; would either fail or require some branch analysis at compile time to work. which we can't really afford. Or: $a = 2; if (...) { $a = 3; } There is no way of stating whether $a = 3; should be for a $a that is unrelated to the outer $a. In other words, the kind of scoping you want will most likely never be implemented in PHP. Best > > "Dynamic scoping is primarily interesting as a historical mistake: it was > in the earliest versions of Lisp, > and persisted for well over a decade. Scheme was created as an experimental > language in part to experiment > with static scope. This was such a good idea that eventually, even Common > Lisp adopted static scope. > Most modern languages are statically scoped, but sometimes they make the > mistake of recapitulating this > phylogeny. So-called “scripting” languages, in particular, often make the > mistake of implementing dynamic > scope (or the lesser mistake of just failing to create closures), and must > go through multiple iterations before > they eventually implement static scope correctly." > - Shriram Krishnamurthi, "Programming Languages: > Application and Interpretation" section 6.5: > > -- Mathieu Suen > > > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > > -- Etienne Kneuss http://www.colder.ch