• 締切済み

pathinfoの設定

2006年ごろにHP製作業者さんに依頼し、もともとPHP4で動いていたHPが、サーバを移転してPHP5になったところ、いくつかエラーがあったのですが、今回お金をかけられないため、PHPの知識はないのですがいろいろWEBで検索し、自力で修正しています。 しかし、pathinfoの設定ファイルでエラーが出て、修正の仕方がわかりません。 pathinfoの設定ファイルの問題の箇所です。 /** * パスインフォの最後の要素を返します。 * パスインフォが/で終わっている(最後の要素が無い)場合には、 * その直前の要素が返ります。 * $this->getString($this->size()) または、 * $this->getString($this->size() - 1)と同じ結果が得られます。 */ function getBack(){ if ($this->elements[$this->size() - 1]) { return $this->elements[$this->size() - 1]; } return $this->elements[$this->size() - 2]; } リンクの設定が/で終わっているリンクメニューがあり、 そのページを開こうとするとHTTP500で表示ができません。 apacheのエラーログを見たところ、上記構文の中の return $this->elements[$this->size() - 2]; の行で PHP Notice: Undefined offset: -1 というエラーが出ております。 どなたか助けていただけませんでしょうか? どうかよろしくお願い致します。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>PHP Notice: Undefined offset: -1 配列にそんなキーをもった要素がないよ!というNoticeですね ここでいう、$this->elements[$this->size() - 2]つまり $this->size()が1なので$this->elements[-1]を参照して みあたらないと判断されています 本来ならきちんとした例外処理を入れてやるのが筋ですが 実害がないなら error_reporting(E_ALL ^ E_NOTICE); と、プログラムの頭の方で宣言しておくとか、php.iniで設定してやるだけで Noticeは消せます

関連するQ&A