Результат статичного метода != резульату идентичной функции.

bosh

Новичок
Результат статичного метода != резульату идентичной функции.

Есть вот такой метод
PHP:
class request{
function getPathInfo() {
        if (isset($_SERVER['PATH_INFO'])) {
        	echo $_SERVER['PATH_INFO'];
                return $_SERVER['PATH_INFO'];
        }
    }
}
И идентичная функция вне класса, т.е. уже не метод а функция.
Её вызов:

1.
echo "+-";
echo $request->getPathInfo();
echo "-+";

2.
echo "+-";
echo getPathInfo();
echo "-+";

Достоверно известно $_SERVER['PATH_INFO']='/Content'
Результаты работы. 1-й:
+-/Content-+
Второй
+-/Content/Сontent-+

Мне видица что второй вариант правильный.
Отчего так работает первый не понимаю вообще.

Да. Ещё если интересно есть третий вариант:
echo "+-";
$request->getPathInfo();
echo "-+";
Выдает
+-/Content-+
Что собственно правильно.

Отчего так работает 1. ?

PHP/5.0.4
 

svetasmirnova

маленький монстрик
Чем отличается первый вызов от третьего?
Где вызов статического метода?
 

bosh

Новичок
Спасибо за конструктивные советы.
Ещё предложения кроме убить меня апстенку есть?
 

bosh

Новичок
Первый от третьего отличается наличием echo во второй строчке.
Светасмирнова - это пять :)

4.
echo "+-";
echo request::getPathInfo();
echo "-+";

+-/Content/Сontent-+

Причины сего мне искать не хочется.

-~{}~ 11.01.06 01:47:

кстати статичный метод это вроде бы тот который не используется другие поля/методы данного класса.
А вызывать его можно как инициализируя класс так и нет.
Я ничего в определениях не путаю?
 

_RVK_

Новичок
Ещё предложения кроме убить меня апстенку есть
Много, но все не в тему. Твой случай граничит с магией и волшебством. Если в них не веришь, ищи ошибки. Ссылку я дал.

-~{}~ 11.01.06 01:49:

кстати статичный метод...
про ключевое слово static забыл ты
 

bosh

Новичок
да нет. Мне собственно казалось что ключевое слово static тут совсем не при делах.

Спишем на магию и незадокументированые возможности пхп. :)
 

white phoenix

Новичок
Приучись приводить полный код единым блоком, который можно сразу скопировать и выполнить чтобы избежать разности исполняемого кода. Например не видно new request.
 
Сверху