2011-05-26 56 views
1

我記得在某處使用%D或類似的東西來聲明常量,其中%D的值是在調用常量時提供的。使用常量%D發送變量

define("EVENT_DATE","The event date is %D"); 

有關這方面的任何信息,它是如何工作的?

回答

4

結賬sprintf()printf()

例子:

define('EVENT_DATE', 'The event date is %s.'); 
echo sprintf(EVENT_DATE, 'tomorrow morning'); 

上面會顯示:

The event date is tomorrow morning. 

如果你想要做的是打印的,你是絕對確保該字符串並不需要應用到它htmlspecialchars() ,那麼你可以直接使用printf()。它的工作原理與sprintf()一樣,但它迴應結果而不是返回它。


梅爾指出,同時downvoting,%D確實是一個strftime()格式。檢查一下,並檢查Mel's example如何使用它。

+0

奇怪的投票在這裏。 %D在標題中特別提到,並且對sprintf()沒有任何意義 - 事實上拼寫錯誤是因爲%d給出了完全意想不到的輸出。 – Mel 2011-05-26 14:02:28

1

可以用PHP申報程序中常數:

define("CONSTANT_EXAMPLE", 2); 
echo CONSTANT_EXAMPLE * CONSTANT_EXAMPLE; 

這將呼應4.

1

具體%d是strftime的使用:

<?php 
define('EVENT_DATE', 'The event date is %D'); 
$eventDate = mktime(0, 0, 0, 5, 31); 
echo strftime(EVENT_DATE, $eventDate); 
?> 

給出:The event date is 05/31/11

+0

謝謝梅爾。我提到了%D,但我沒有具體說明日期。整件事情是無意的,我想要%s這樣的東西,但不記得所有%的簡短形式。儘管如此,謝謝你爲%D澄清我。我向你投了一個贊成票。 – 2011-05-26 20:12:56