2016-02-14 100 views
1

我面臨着一個PHP sprintfPHP對象,模式與實踐書:PHP sprintf的使用問題

$txtout = ""; 
    $pad = 4*$num; 
    $txtout .= sprintf("%{$pad}s", ""); 

我不知道,但我覺得作者的目的是建立填充(縮進)基於$pad,但實際上它不起作用,這句代碼在語法上是正確的嗎?

+0

確實看起來像無稽之談 - 用str_repeat或許更容易。我假設有一個數字分配給'$ num'?它增加了空格,雖然 – RamRaider

+0

@RamRaider是'$ num'是一個整數,從代碼 – alex

回答

3

它確實可以添加空格或填充 - 只是在普通html中通常不會看到空格/填充 - 儘管在pre標記內,它將變得明顯。

$num=10; 
$txtout = ""; 
$pad = 4*$num; 
$txtout .= sprintf("%{$pad}s", ""); 

/* you should see the word hello spaced out across the page */ 
echo '<pre>',print_r($txtout.'hello'.$txtout.'hello',true),'</pre>'; 
+0

的另一部分獲取謝謝,它確實有效,但是需要將'print_r'第二個參數更改爲'true'? – alex

+1

使用'true'作爲第二個參數意味着'print_r'返回值而不是將其打印到屏幕上..可以用基本的'echo'語句完成同樣的事情,但這正是我的測試設置。 – RamRaider

+0

是的,我知道,但我從來沒有見過使用','連接字符串,因爲我一直使用'.'是否有資格使用','而不是'.'來連接多個字符串? – alex