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;

for ($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

あなたが求めているのは変数$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

于 2012-05-17T23:51:56.070 に答える