Connecting Tech Pros Worldwide Forums | Help | Site Map

PHP equiv of perl's last label or goto?

bobmct
Guest
 
Posts: n/a
#1: Mar 7 '06
In a multiple nested structure I have a section that when true need to
break out of not only the current structure, but several more to read
a much higher level. In perl I would name/label my structures and use
the "last labelname" statement to accomplish this.

The PHP docs state that its break statement can take an optional
parameter which represents the "number" of levels to break out of.
Now this seems like it could work. However, I see a problem with
ongoing maintenance if someone inserts or removes another level which
would cause that number to be inaccurate.

Can someone please recommend how one might accomplish this feat using
flexible php code? I am all ears (well, eyes).

Thanks,

Bob

NC
Guest
 
Posts: n/a
#2: Mar 7 '06

re: PHP equiv of perl's last label or goto?


bobmct wrote:[color=blue]
>
> In a multiple nested structure I have a section that when true need to
> break out of not only the current structure, but several more to read
> a much higher level. In perl I would name/label my structures and use
> the "last labelname" statement to accomplish this.
>
> The PHP docs state that its break statement can take an optional
> parameter which represents the "number" of levels to break out of.
> Now this seems like it could work. However, I see a problem with
> ongoing maintenance if someone inserts or removes another level which
> would cause that number to be inaccurate.
>
> Can someone please recommend how one might accomplish this feat
> using flexible php code? I am all ears (well, eyes).[/color]

Put the code into a function and break out using return().
Alternatively, use a flag variable:

$flag = true;
while ($flag) {
// some PHP code...
if ($some_condition) {
$flag = false;
}
// more PHP code...
if ($another_condition) {
$flag = false;
continue;
}
// yet more PHP code...
}

Cheers,
NC

Toby Inkster
Guest
 
Posts: n/a
#3: Mar 8 '06

re: PHP equiv of perl's last label or goto?


bobmct wrote:
[color=blue]
> The PHP docs state that its break statement can take an optional
> parameter which represents the "number" of levels to break out of.
> Now this seems like it could work. However, I see a problem with
> ongoing maintenance if someone inserts or removes another level which
> would cause that number to be inaccurate.[/color]

The number of levels can be a variable rather than hard-coded, so there
might be scope to do something there, but it might be a bit nasty.

PHP's lack of "next" and "last" are a little irritating.

--
Toby A Inkster BSc (Hons) ARCS
Contact Me ~ http://tobyinkster.co.uk/contact

Closed Thread