PHP新手在这里
任何人都可以告诉我下面的语法有什么问题。我最多有4个文件 - $ created_page1,$ created_page2,每个文件都有相应的页面标题等,并希望在循环中处理这些文件。但是,每当我尝试连接字符串和循环编号时,PHP就会抛出一个摇摆 - 特别是$ created_page。$ num_pages不会导致向函数发送$ created_page1或$ created_page2,而只是将字符串和数字转换为整数。非常基本我肯定,但我会非常感谢任何帮助或更好的解决方案,我可以很容易理解。提前谢谢!
$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 :(得分:1)
获取变量名称的代码应为:
${'created_page'.$num_pages}
这是因为在尝试访问变量之前,必须先评估大括号内的字符串。
您之前的代码试图访问变量$ created_page和$ 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_page.strval($ num_pages),“* page_title *”,$ page_title.strval($ 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);
}
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