詳細)
ループで配列に値を入れていくと、(推測ですが)配列の許容数をオーバーしてエラーになりプログラムが落ちます(ブラウザがアラートダイアログを返し、ブラウザは真っ白です)。
原因と対処法を教えて下さい。
よろしくお願い致します。
配列の許容量というものはありませんが、スクリプトが確保できる最大メモリを指定している設定があります。
このmemory_limitが効いており、エラーになっているのではないでしょうか。
回避するためにはphp.iniの内容を書き換えるか、ini_setで設定を変更する必要すれば良いはずです。
ini_set("memory_limit", "16M");
上記の例ではmemory_limitを16MBに変更しています。
(デフォルトでは8MBか16MBに設定されています。)
また、「ブラウザがアラートダイアログを返し」とありますが、どのような内容になっていますか。
そこに出ているエラーメッセージが解決のヒントになると思います。
以降の回答者の方の参考になるように情報を開示していただけますでしょうか。
可能であれば、問題が発生するソースも開示するより確実な回答がつくと思います。
(全ソースは問題がある場合、配列の部分に特化した簡単なサンプルを提示していただければ良いと思います。)
参考になると幸いです。
>配列の許容数をオーバーしてエラー
と、原因がわかっているのであれば、必要な配列を用意すればいいのでは?
あくまで推測です。
配列のサイズを増やしながら値を入れています。それでもエラーになります。
そもそも許容数というものがあるのかどうかを知りたいです。
配列は、確保した分を 超えると エラーになるのが 通常だと思われます。
なので、宣言時に 多めに配列を確保する。
か、もしくは動的で 使う前に確保するかのどちらかでしょう。
宣言の仕方が知りたいです。
http://php.s3.to/man/function.set-time-limit.html
可能性として考えられるのは、タイムアウトが発生した
ことが考えられます。PHPを連続して動作させる方法として、
set_time_limit という関数がありますので、一度お試しください。
あっという間にエラーを返します。
ただ原因はそれに近いような気がします。
配列の宣言について
http://www.res-system.com/weblog/item/128
>変数定義時に明示的な型定義を必要としない(サポートしない)そうです。
サポートしないの?ソースは不明。
http://www.atmarkit.co.jp/flinux/php4/php4_3/php4_3.html
>多次元配列の要素には数値添字と文字列添字を混在でき、次元数の制限はありません。
次元に制限がないなら、配列に制限がない可能性も。
すると、OSやメモリなどシステムの上限が限界になるのかも。
http://php.benscom.com/manual/ja/function.stream-select.php
>注意: 配列に返されたストリームに対して読み込みまたは書き込み操作を行う際に、 必ずしもあなたの希望しただけデータが読まれたり書かれたりはしないことに 注意してください。たった 1 バイトしか読み出せない場合も、書き込めない 場合もあるのです。
こういうこともあるようで。
配列に入れるサイズを10倍くらいにして、どこまで許容されるか元と比較すれば状況が少しは分かるかもしれません。
解決のお役にたてば。
> すると、OSやメモリなどシステムの上限が限界になるのかも。
これかも知れません。
既定値などを詳しく知りたいです。対処法も知りたいです。
配列の許容量というものはありませんが、スクリプトが確保できる最大メモリを指定している設定があります。
このmemory_limitが効いており、エラーになっているのではないでしょうか。
回避するためにはphp.iniの内容を書き換えるか、ini_setで設定を変更する必要すれば良いはずです。
ini_set("memory_limit", "16M");
上記の例ではmemory_limitを16MBに変更しています。
(デフォルトでは8MBか16MBに設定されています。)
また、「ブラウザがアラートダイアログを返し」とありますが、どのような内容になっていますか。
そこに出ているエラーメッセージが解決のヒントになると思います。
以降の回答者の方の参考になるように情報を開示していただけますでしょうか。
可能であれば、問題が発生するソースも開示するより確実な回答がつくと思います。
(全ソースは問題がある場合、配列の部分に特化した簡単なサンプルを提示していただければ良いと思います。)
参考になると幸いです。
ありがとうございます。解決いたしました。
エラーは以下でした。ブラウザによっても違うと思います。
「アクセス中のURL:〜の読み込みに失敗しました」
(あまり奨励されるやり方ではありませんが)簡単な質問文で的確な答えが返ってくるか知りたかったという思いがありました(同じトラブルにあわれた方が多ければすぐに正解が出るし、否なら逆)。すみません。ありがとうございました。
ありがとうございます。解決いたしました。
エラーは以下でした。ブラウザによっても違うと思います。
「アクセス中のURL:〜の読み込みに失敗しました」
(あまり奨励されるやり方ではありませんが)簡単な質問文で的確な答えが返ってくるか知りたかったという思いがありました(同じトラブルにあわれた方が多ければすぐに正解が出るし、否なら逆)。すみません。ありがとうございました。