2009-12-29 71 views
-1

我很想知道什麼語法「:」在PHP中的意思我已經看過幾次,但我似乎無法解釋它給自己。你還可以在一個句子中使用它....或者我的意思是,示例代碼?代碼「:」在php

**編輯:

抱歉的人,我指的是三元操作符。感謝您的其他參賽作品。我一開始並不知道該說什麼,表示歉意。

+3

該字符可以在多個上下文中使用。也許你應該在句子中使用它,這樣我們都可以知道你真的在問什麼。複製並粘貼幾行代碼,以演示您嘗試理解的任何代碼的用法。 – 2009-12-29 18:24:27

回答

9

這是ternary operator

echo ($a == 1 ? "A is 1" : "A is not 1"); 
+1

+1簡潔的答案! – 2009-12-29 18:21:30

10

也許你指的是ternary operator,它使用?和:如下:

$variable = boolean_expression ? "true_value" : "false_value"; 

此代碼是簡寫一個的if-else:

if (boolean_expression) { 
    $variable = "true_value"; 
} 
else { 
    $variable = "false_value"; 
} 
0

這是一個短的形式conditional expression,在PHP被稱爲 「三元運算符」。有關其用法的更多詳細信息,請參見PHP manual

echo ($sheLovesMe ? "She loves me!" : "She loves me not!"); 
5

它也可以指一個goto

MyGoto: 
    if (DoSomething()) 
     goto MyGoto; 

極少數情況需要一個goto,但是這就是它如果沒有一個三元運算符的意思。

+0

請注意,goto運算符僅適用於PHP 5.3版本。 – alexn 2009-12-29 18:24:46

6

如何嵌入HTML中的PHP塊的簡寫語法?例如

<body> 
    <h1>Some Header</h1> 
    <?php if($somevariable == '4') : ?> 
     <h2>Some other thing</h2> 
     <p>Some text</p> 
    <?php else: ?> 
     <h3>Else!</h3> 
    <?php endif; ?> 
</body> 

也許並不一定算作運營商。更多的分隔符在這裏。

+0

不*具有*被嵌入在HTML中,是嗎?它只是大多數構造的替代語法,否則會使用大括號。 – 2009-12-29 23:12:59

+0

它是爲了擺脫通過HTML嵌入的PHP標籤傳播的無意義大括號而創建的。如果你在HTML中有一大塊PHP(這麼做的恐懼),你不需要使用它們。這只是用PHP包裝HTML的塊。 – 2009-12-30 02:45:51

2

?:運算符是一個三元運算符,稱爲conditional operator

因爲表達表達式2expr1 ? expr2 : expr3表達式3是基於表達式1評估的返回值評估,是有條件的:

  • 如果表達式1評估爲真正表達式2被評估並且返回值expr2是整個的返回值運算符表達式;
  • 否則expr3被評估並且?:運算符表達式的返回值是返回值expr3

下面是一個例子:

echo 1 == 1 ? "true" : "false"; 

如果1 == 1評估爲真正"true"將回蕩,否則"false"

注意,?:運營商只是一個三元運算符。字三元只是意味着有三個操作數(op1 ? op2 : op3)就像一個二進制運算符有兩個操作數(例如op1 + op2op1/op2op1 % op2等)和一元運算符只是有一個操作數(例如!op-op~op等) 。

+0

+1不稱它爲「三元運算符」 – Yacoby 2009-12-29 19:31:50