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

Reply via email to