scoping inside a block

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
Is there a way to localize a var inside a block?  Can I have this
behavior without calling a function?

$myA = 'A'

     $myC = 'C';
     $myA = 'B';
     echo $myA . ' says B';

echo $myA . ' says A';
echo $myC   .... does not exist

Thank you.

Re: scoping inside a block

oldyork90 wrote:
Quoted text here. Click to load it
yeah,. Write the program in C :-)

Re: scoping inside a block

Am 2011-12-27 21:08, schrieb oldyork90:
Quoted text here. Click to load it



Re: scoping inside a block

Gregor Kofler wrote:
Quoted text here. Click to load it

Strictly, no. In practice, make that block a function?

The overhead on a call return is not great.
Even if its only ever used once.

There is a lot to be said for making any long bit of code into a series
of calls to small functions  to improve isolation, and separate
different logical flows.

So instead of if (this)
    // Do pages of stuff...
eslsee     {
    // Do more pages of stuff

becomes if (this)
    Do_pages_of_stuff($withThis, $andThis..);
else     {
    Do_more_pages_of_stuff($withThis, $andThis..);

etc etc.

I certainly find it helps me keep track of what the heck I am trying to
do a bit easier anyway.

The other way is of course massive documentation and commenting as we
used to do with Assembler, where the logical flow was completely
obscured by the actual language statements.

A block statement at the top explaining the flow, and comments
throughout  like
; In this section we compare gross profit with gross interest on loans
; Register A is the loan, B is the profit, in pence.

CMP A,B ;     If the net cash flow is equal to the interest
JMPLT NO_PROFIT ; THEN prepare shareholder excuses
    ;     ELSE etc ..

Which is megabytes of explanation for every few kilobytes of actual code..

The joy of discovering portable assembler AKA 'C' was...considerable.

Don't expect too much of your language: Just consider the alternatives....

Quoted text here. Click to load it

Site Timeline