在PHP中组合字符串和数字for循环

时间:2012-05-17 23:42:03

标签: php loops for-loop

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);    
}

3 个答案:

答案 0 :(得分:1)

获取变量名称的代码应为:

${'created_page'.$num_pages}

这是因为在尝试访问变量之前,必须先评估大括号内的字符串。

您之前的代码试图访问变量$ created_pa​​ge和$ num_pages,只需将它们的值连接成一个字符串。

当然,page_title变量

也是如此
${'page_title'.$num_pages}

答案 1 :(得分:0)

你可以试试这个:

$addit_pages == 4;

for($ num_pages = 1; $ num_pages&lt; = $ addit_pages; $ num_pages ++){

replaceFileContent($ dir,$ 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函数将任何整数转换为字符串

答案 2 :(得分: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