[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: отличие :: от -> ?
NeverMore
Например есть класс
Код
class Robot { //Класс обновляющий данные
    function Seobot()
    {
        Core::SQLc();
        $urls=mysql_query('select distinct url from dx');
        while ($uri=mysql_fetch_row($urls))
        { //Для каждого урла делаем проверку
            $notice='select url from dx where tnow="'.date('Y-m-d').'" and url="'.$uri[0].'"';
            $q=mysql_query($notice);
            if (mysql_num_rows($q)==0)//Если нет сегодняшней записи
            {
                //Пишем...
                mysql_query('INSERT INTO dx VALUES (Null, "'.$uri[0].'", "'.
                Seo::NumPagesInYandex($uri[0]).'", "'.Seo::NumPagesInGoogle($uri[0]).'", "'.Seo::YandexCY($uri[0]).'", NOW() );');
            }
            else
            {
                echo 'За сегодня все данные по сайту '.$uri[0].' протоколированы';    
            }
        }
    }
}

В чем отличие вызова метода класса
$seo=new Robot;
$seo->Seobot();
от более простого Robot::Seobot(); ?
по затрачиваемой памяти первый вариант только хуже, так почему же везде объявляют переменную? О_о



Спустя 2 часа, 20 минут, 41 секунда (26.06.2008 - 13:43) AndryG написал(а):
Надобность почитать о статических и "не статических" методах/переменных Вам.
Попробую кратко объяснить, но придется использовать умное слово "контекст" (не люблю я его)

Статические методы ( :: ) привязываются к классу и выполняются в контексте класса

Обычные методы ( -> ) привязываются к объекту и выполняются в контексте конкретного объекта - экземпляра класса.

При вызове методов обязательно нужно соблюдать правила вызовов (:: ->) в зависимости от типа метода. (php5 пок ана это закрывает глаза и делает глупости. В шестом обещают, что будет ругаться на сие громко и матерно)

Спустя 13 минут, 54 секунды (26.06.2008 - 13:57) NeverMore написал(а):
Цитата(AndryG @ 26.6.2008, 10:43) [snapback]41387[/snapback]
Надобность почитать о статических и "не статических" методах/переменных Вам.
Попробую кратко объяснить, но придется использовать умное слово "контекст" (не люблю я его)

Статические методы ( :: ) привязываются к классу и выполняются в контексте класса

Обычные методы ( -> ) привязываются к объекту и выполняются в контексте конкретного объекта - экземпляра класса.

При вызове методов обязательно нужно соблюдать правила вызовов (:: ->) в зависимости от типа метода. (php5 пок ана это закрывает глаза и делает глупости. В шестом обещают, что будет ругаться на сие громко и матерно)


Спасибо за развёрнутый ответ. А я то собирался все вызовы сделать статическими crying.gif

Спустя 1 месяц, 26 дней, 12 часов, 32 минуты, 48 секунд (23.08.2008 - 02:30) Gibbzy написал(а):
$seo=new Robot;

а это вообще создание обькта нового т.е экземпляра класса


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.