サフィックスを作成しようとしています(名前は私が作成したものです)。URLエクスプローダは以下です..
private function explode_url() {
if (!empty($this->suffix) and empty($is)) {
// look here ------V
$url = explode('/', rtrim($_GET['url'], $this->define_suffix()));
} else {
$url = explode('/', trim($_GET['url'], '/'));
}
$str = '';
foreach ($url as $key => $value) {
if ($key >= 2) {
$str = $str . '/' . $value;
} else {
$data[] = $value;
}
}
$data[] = trim($str, '/');
foreach ($data as $data) {
if (!empty($data)) {
$result[] = $data;
}
}
return $result;
}
そして、これが接尾辞を定義する関数です。
private function define_suffix() {
$count = count($this->explode_url()); // <------ look here
$count = $count - 1;
$keys = array('cnt', 'mtd', 'args');
return $this->suffix[$keys[$count]];
}
実際には機能は良好ですが、問題があります。無限ループがあります。どうすればこれを逃れることができますか?
編集: 出力:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 130968 bytes) in /var/www/cleanmvc/boot.php on line 85
関数は相互に呼び出し、無限ループを引き起こしています。それが私が助けを必要としているものです。