2012-05-17 81 views
3

PHP新手在這裏在PHP中結合字符串和數字循環

任何人都可以告訴我下面的語法有什麼問題。我最多有4個文件 - $ created_pa​​ge1,$ created_pa​​ge2,每個文件都有相應的頁面標題等,並希望在循環中處理這些文件。然而,PHP每次嘗試連接字符串和循環數時都會引發抖動 - 特別是$ created_pa​​ge。$ num_pages不會導致將$ created_pa​​ge1或$ created_pa​​ge2發送給函數,而只是將字符串和數字轉換爲整數。非常基本,我相信,但我會非常感謝任何幫助或更好的解決方案,我可以輕鬆理解。提前致謝!

$addit_pages == 4; 

for ($num_pages=1;$num_pages<=$addit_pages ;$num_pages++) { 

replaceFileContent ($dir,$created_page.$num_pages,"*page_title*",$page_title.$num_pages); 
//replaceFileContent ($dir,$created_page2,"*page_title*",$page_title2); 
//replaceFileContent ($dir,$created_page1,"*page_title*",$page_title3); 
//replaceFileContent ($dir,$created_page3,"*page_title*",$page_title4);  
} 
+0

我不是你想做什麼明確的。什麼是'「* page_title *」'? –

+4

它搖擺多遠? – Smandoli

+0

以及這些參數的內容是什麼?我想你正在混合DATE和INTEGER或類似的東西!? – Sliq

回答

0

你可以試試這個:

$addit_pages == 4; 

爲($ NUM_PAGES = 1; $ NUM_PAGES < = $ addit_pages; $ NUM_PAGES ++){

replaceFileContent($目錄,$ created_pa​​ge.strval ($ NUM_PAGES), 「* PAGE_TITLE *」,$ page_title.strval($ NUM_PAGES)); // replaceFileContent($ dir,$ created_pa​​ge2,「* page_title *」,$ page_title2); // replaceFileContent($ dir,$ created_pa​​ge1,「* page_title *」,$ page_title3); // replaceFileContent($ dir,$ created_pa​​ge3,「* page_title *」,$ page_title4);
}

的PHP strval功能,使任何整數轉換成字符串

0

我想你問的是你想要的變量$created_page1; $created_page2, $created_page3但PHP是可能拋出一個通知,$created_page不存在。

您需要使用可變的變量(這是他們叫什麼?)

$addit_pages == 4; 

for ($num_pages=1;$num_pages<=$addit_pages ;$num_pages++) { 
    $createdVar = 'created_page'.$num_pages; 
    $titleVar = 'page_title'.$num_pages; 
    replaceFileContent ($dir,$$createdVar,"*page_title*",$$titleVar); 
} 

當您使用$$這個第一對變量$createdVar輪流到這created_page1然後評估created_page1,如果你輸入了在$created_page1

+0

供參考的鏈接,「變量變量」是它看起來正確的術語:http://us2.php.net/manual/en/language.variables.variable。php – Aknosis

1

你的代碼來獲取變量名應該是:

${'created_page'.$num_pages} 

這是因爲您必須在嘗試訪問變量之前評估大括號內的字符串。

你以前的代碼試圖訪問變量$ created_pa​​ge和$ num_pages,並簡單地將它們的值連接成一個字符串。

當然,這同樣適用於PAGE_TITLE變量

${'page_title'.$num_pages} 
+2

哇 - 所以很多回應如此之快。 domvoyt我想你知道我最多得到什麼,像夢一樣工作,我明白了。但感謝所有人 - 你的回答都能幫助我掌握這件事。 – rookieloops

+0

沒問題。 @Aknosis有另一種方法可行。基本上有兩種不同的使用「變量變量」的方法。 但正如deceze所說,使用數組做得更好,所以祝你好運:) – domvoyt