10

What does the symbol : mean in PHP?

3
  • 9
    Could you please post the code that it appears in? It could have different meanings, depending on the context. Commented May 25, 2010 at 20:05
  • 9
    When asking a questions please be specific. Oftentimes, this means giving a code example. Commented May 25, 2010 at 20:16
  • Scope Resolution Operator(:) php.net/manual/en/language.oop5.paamayim-nekudotayim.php Commented Nov 23, 2013 at 9:49

6 Answers 6

35

PHP offers an alternative syntax for some of its control structures; namely, if, while, for, foreach, and switch. In each case, the basic form of the alternate syntax is to change the opening brace to a colon (:) and the closing brace to endif;, endwhile;, endfor;, endforeach;, or endswitch;, respectively.

Sign up to request clarification or add additional context in comments.

Comments

21

You also encounter : if you use the alternative syntax for control structures:

<?php if ($a == 5): echo "a equals 5"; echo "..."; elseif ($a == 6): echo "a equals 6"; echo "!!!"; else: echo "a is neither 5 nor 6"; endif; ?> 

Or as already mentioned the ternary operator:

$action = (empty($_POST['action'])) ? 'default' : $_POST['action']; 

(Examples taken from the documentation)


Edit: Somehow I didn't see that the alternative syntax was already mentioned, must be too tired ;) Anyway, I will leave it as it is, as I think an actual example and a link to the documentation is more helpful than just plain text.

3 Comments

Third place would be the foreach ( $entry : $list) thing wouldnt it?
Could you please help me.I'm doubtful about the use of ' : ' in the following context ( Laravel ). ['email' => 'required|email|unique:email,users']
@Michel: I don’t know about Laravel, sorry. From PHP‘s perspective, : is part of a string so it has no special meaning.
9

I'm guessing you're seeing this syntax:

print ($item ? $item : ''); 

This is a short form of if/else. The ? is the if, and the : is the else.

Comments

3

Shorter if statement:

$val = (condition) ? "condition is true" : "condition is false"; 

Comments

1

As others have posted, you probably are looking at ternary logic.

However, if two of them are together, then it is the scope resolution operator, used for referencing status methods/properties and constants.

Comments

1

It can mean a number of things. You may mean the ternary operator, ?:.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.