Вызов функции-члена get_segment () error - PullRequest
0 голосов
/ 01 июня 2010

У меня проблема с этим фрагментом кода PHP:

class Core {
public function start()
{
require("funk/funks/libraries/uri.php");
$this->uri = new uri();
require("funk/core/loader.php");
$this->load = new loader();

if($this->uri->get_segment(1) != "" and file_exists("funk/pages/".$uri->get_segment(1).".php")){

Только фрагмент кода

Лучший способ объяснить это то, что это класс, вызывающий другой класс (uri.php), и я получаю сообщение об ошибке: Неустранимая ошибка: вызов функции-члена get_segment () для необъекта в / home / eeeee / public_html / private / funkyphp / funk / core / core.php в строке 11 (часть if ($ this-> uri-> get_segment (1))

У меня много проблем с этой проблемой, и это действительно беспокоит меня.

код библиотеки:

<?php
class uri
{
    private $server_path_info = '';
    private $segment = array();
    private $segments = 0;

    public function __construct()
    {
        $segment_temp = array();
        $this->server_path_info = preg_replace("/\?/", "", $_SERVER["PATH_INFO"]);
        $segment_temp = explode("/", $this->server_path_info);
        foreach ($segment_temp as $key => $seg)
        {
            if (!preg_match("/([a-zA-Z0-9\.\_\-]+)/", $seg) || empty($seg)) unset($segment_temp[$key]);
        }
        foreach ($segment_temp as $k => $value)
        {
            $this->segment[] = $value;
        }
        unset($segment_temp);
        $this->segments = count($this->segment);
    }

    public function segment_exists($id = 0)
    {
        $id = (int)$id;
        if (isset($this->segment[$id])) return true;
        else return false;
    }

    public function get_segment($id = 0)
    {
    $id--;
        $id = (int)$id;
        if ($this->segment_exists($id) === true) return $this->segment[$id];
        else return false;
    }
}
?>

1 Ответ

0 голосов
/ 01 июня 2010

Ваши звонки на get_segment() противоречивы.

В одном случае вы звоните $this->uri->get_segment(), что соответствует вашему предыдущему коду.Во второй раз вы вызываете $uri->get_segment, в котором отсутствует $this->, и поэтому он не является допустимым объектом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...