2012-05-17 41 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