2011-01-28 32 views

Trả lời

22

Trong PHP 5.3, bạn cũng có thể làm:

$a = f() ?: 'default'; 

Xem the manual on ?: operator.

+3

+1 vì tôi chưa từng thấy điều đó trước đây. khéo léo. –

+1

+1 vì tôi chưa thấy được sử dụng trong bất kỳ cuốn sách nào của tôi bao gồm PHP 5.3. Rất tốt để biết. – Andrew

6

Điều này dường như làm việc tốt:

$x = f() or $x = 'default'; 
1
function f() 
{ 
    // conditions 
    return $if_something ? $if_something : 'default'; 
} 

$x = f(); 
+0

Ah, câu trả lời tốt. Ý tôi là f() là thứ mà chúng ta không kiểm soát và thực ra cái cách này cho tôi, nó không phải là một hàm gì cả mà là '$ _REQUEST ['foo']' nên nó không phải là vấn đề hiệu quả nhiều như vấn đề đánh máy. – dreeves

0

Bạn có thể lưu nó vào một biến. Testcase:

function test() { 
     echo 'here'; 
     return 1; 
} 

$t = test(); 
$x = $t ? $t : 0; 
echo $x; 
1
$x = ($result = foo()) ? $result : 'default'; 

test

+0

Tác phẩm này hoạt động, nhưng có vẻ như nó có thể được thực hiện sạch hơn, không có biến tạm thời. – dreeves

Các vấn đề liên quan