Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Когда стоит объявлять в php методы класса как статические?
 
 автор: HeX   (21.06.2010 в 12:59)   письмо автору
 
 

Объясните пожалуйста в чём разница между
статическими членами класса, от не статических
ведь один и тот-же класс можно написать двумя способами, или я не прав ?
и когда стоит объявлять в php методы класса как статические?

P.S заранее всем спасибо

  Ответить  
 
 автор: а-я   (21.06.2010 в 13:23)   письмо автору
 
   для: HeX   (21.06.2010 в 12:59)
 

ну 1ое, когда надо наследовать... до 5.3 вроде, статистические наследовать нельзя..

а общая инфа.. например общежитие.

кухня, сан.узел, прихожая - эт статистич.
комнаты - эт ты уже объекты создаешь..

  Ответить  
 
 автор: Tonik992   (21.06.2010 в 13:39)   письмо автору
 
   для: а-я   (21.06.2010 в 13:23)
 

http://softtime.ru/forum/read.php?id_forum=1&id_theme=74543&page=1

тут уже была подобная тема, может что найдешь для себя полезное

  Ответить  
 
 автор: HeX   (21.06.2010 в 13:43)   письмо автору
 
   для: Tonik992   (21.06.2010 в 13:39)
 

Спасибо

  Ответить  
 
 автор: HeX   (21.06.2010 в 13:42)   письмо автору
 
   для: а-я   (21.06.2010 в 13:23)
 

Правильно, но с таким же успехом можно объявить как и не статический.
Мне не понятно когда стоит объявлять статические методы а когда нет

  Ответить  
 
 автор: Tonik992   (21.06.2010 в 14:06)   письмо автору
 
   для: HeX   (21.06.2010 в 13:42)
 


<?php
class Someclass{
    private 
$obj;
    static private 
$static;

    static public function 
newValueFromStatic(){
        
$this->obj "Object's variable";  //Нельзя
    
}
    public function 
newValueFromObj(){
        
$this->static "NOT STATIC!";
        
Someclass::$static "IS STATIC";
    }
    public function 
get_value(){
        echo 
$this->static."<br>";
        echo 
Someclass::$static;
    }
}

$someclass = new Someclass();
//Someclass::newValueFromStatic();  //Ошибка! Недопустимо
$someclass->newValueFromObj();
$someclass->get_value();
Результат:
NOT STATIC!<br>IS STATIC

В общем, вывод такой: статические методы применяются обычно для работы со статическими полями. Но в статических методах нельзя менять состояние объекта (изменение каких-либо нестатических полей)..

  Ответить  
 
 автор: HeX   (21.06.2010 в 14:25)   письмо автору
 
   для: Tonik992   (21.06.2010 в 14:06)
 

опа,вот спасибо! если я правильно понял в статических методах нельзя влиять на сам объект то есть изменять его?

  Ответить  
 
 автор: Trianon   (21.06.2010 в 14:34)   письмо автору
 
   для: HeX   (21.06.2010 в 14:25)
 

не только влиять, но даже обращаться к объекту не выйдет.
Потому что сам объект не определен. Определен лишь класс.

  Ответить  
 
 автор: HeX   (21.06.2010 в 14:37)   письмо автору
 
   для: Trianon   (21.06.2010 в 14:34)
 

Спасибо,ВСЕМ СПАСИБО !!!!!!!!!!!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования