3

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

3 回答 3

1

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

${'created_page'.$num_pages}

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

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

当然,page_title 变量也是如此

${'page_title'.$num_pages}
于 2012-05-17T23:52:14.103 回答
0

你可以试试这个:

$addit_pages == 4;

对于 ($num_pages=1;$num_pages<=$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 函数将任何整数转换为字符串

于 2012-05-17T23:47:08.620 回答
0

我想你要问的是你想要变量,但 php 可能会抛出一个不存在$created_page1; $created_page2, $created_page3的通知。$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

于 2012-05-17T23:51:56.070 回答