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


Combining strings and numbers in PHP for loop

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

获取变量名称的代码应该是:

${'created_page'.$num_pages}

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

您之前的代码尝试访问变量 $created_page 和 $num_pages,并简单地将它们的值连接成一个字符串。

当然,page_title变量也是如此

${'page_title'.$num_pages}

你可以试试这个:

$addit_pages == 4;
for ($num_pages=1;$num_

pages<=$addit_pages ;$num_pages++( {

replaceFileContent ($dir,$created_page.strval($num_pages(,"*page_title*",$page_title.strval($num_pages((;替换文件内容 ($dir,$created_page2,"*page_title*",$page_title2(;替换文件内容 ($dir,$created_page1,"*page_title*",$page_title3(;替换文件内容 ($dir,$created_page3,"*page_title*",$page_title4(;
}

PHP strval 函数将任何整数转换为字符串

我认为您要问的是您希望变量$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