7

What does the below code mean (it's a lambda in the while-statement, then a colon after)? Coming from JavaScript, I have no idea what that means or even how to search for that. Can anyone help explain this?

while ($query->have_posts()): $query->the_post();

Btw I got this from WordPress but is the syntax pure PHP?

4

3 回答 3

9

This is a less-common while structure:

while (condition):
    doSomething();
endwhile;

This is not how things are traditionally done, but it is valid syntax. See while loop syntax for more details, as well as alternative control syntax.

于 2013-02-10T06:38:34.383 回答
1

It is an alternative syntax for control structures.

于 2013-02-10T06:39:31.680 回答
1

In general, this:

while (expression) :
  //actions
endwhile;

is the same as this:

while (expression) {
  //actions
}

which is what you're probably used to. The bracketted expression $query->havePosts() is just the condition of the while, and the sentence after the colon is the first line within the while.

于 2013-02-10T06:53:05.210 回答