これを正しく書く方法は?
for($i=2;$i<5;$i++)
{
$items{$i} = $doc{$i}->getElementsByTagName('url');
}
エラーが発生しました:
致命的なエラー: 非オブジェクトでのメンバー関数 getElementsByTagName() の呼び出し
ありがとさよなら
これを正しく書く方法は?
for($i=2;$i<5;$i++)
{
$items{$i} = $doc{$i}->getElementsByTagName('url');
}
エラーが発生しました:
致命的なエラー: 非オブジェクトでのメンバー関数 getElementsByTagName() の呼び出し
ありがとさよなら
試す :
$ndoc = 'doc'. $i;
$items[$i] = $$ndoc->getElementsByTagName('url');
また:
$ndoc = 'doc'. $i;
$items[$i] = ${$ndoc}->getElementsByTagName('url');
このテストは私のために働いた: -
$html1 = "<html><head><title>Test</title></head><body><p>Doc1 P1</p><p>Doc1 P2</p></body></html>";
$html2 = "<html><head><title>Test</title></head><body><p>Doc2 P1</p><p>Doc2 P2</p></body></html>";
$doc1 = new DOMDocument();
$doc1->loadHTML($html1);
$doc2 = new DOMDocument();
$doc2->loadHTML($html2);
for($i=1;$i<3;$i++){
var_dump(${'doc'.$i}->getElementsByTagName('p'));
}
したがって、コードは次のようになります。
for($i=2;$i<5;$i++)
{
${'items'.$i} = ${'doc'.$i}->getElementsByTagName('url');
}
$items を配列にするつもりでない限り、その場合は次のようになります:-
for($i=2;$i<5;$i++)
{
$items[] = ${'doc'.$i}->getElementsByTagName('url');
}