2010-05-25 48 views
8

PHP中的符號:是什麼意思?什麼是PHP中的「:」?

+9

能否請您發佈,它出現在代碼?它可以有不同的含義,取決於上下文。 – FrustratedWithFormsDesigner 2010-05-25 20:05:54

+9

提問時請'具體說明。通常,這意味着給出一個代碼示例。 – Armstrongest 2010-05-25 20:16:29

+0

範圍解析運算符(:) http://php.net/manual/en/language.oop5.paamayim-nekudotayim.php – 2013-11-23 09:49:55

回答

31

PHP爲其控制結構提供了一種替代語法;即if,while,for,foreach和switch。在每種情況下,替代語法的基本形式是分別將大括號分別更改爲冒號(:)和結束大括號,以分別結束endif,endwhile,endfor ;, endforeach ;,或endswitch。

+0

很好,謝謝.. – 2010-05-26 15:14:17

7

我猜你看到這句法:

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

這是if/else語句的簡寫形式。這個?是if和the:是其他。

1

正如其他人發佈的,你可能正在尋找三元邏輯。

然而,如果其中的兩個是在一起的,則它是scope resolution operator,用於參照狀態的方法/屬性和常數。

20

您也遇到:如果使用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; 
?> 

或者如已經提到的ternary operator

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

(從文檔中採取例子)


編輯:不知何故,我沒有看到替代語法已經提到,一定是太累了;)無論如何,我會保持原樣,因爲我認爲一個實際的例子和文檔的鏈接更有幫助不僅僅是純文本。

+0

第三名將是'foreach($ entry:$ list)'事情不會呢? – Felix 2016-12-09 20:02:31

+0

您能否幫助我。我在下面的上下文(Laravel)中使用':'存疑。 ['email'=>'required | email | unique:email,users'] – Michel 2017-10-27 06:59:39

+0

@Michel:我不知道Laravel,對不起。從PHP的角度來看,':'是字符串的一部分,所以它沒有特殊的含義。 – 2017-10-27 07:34:51

2

較短的if語句:

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