Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/12: Рейтинг темы: голосов - 12, средняя оценка - 4.75
11 / 11 / 0
Регистрация: 05.11.2009
Сообщений: 78
1

Освоение ООП

20.03.2012, 22:58. Показов 2399. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Решил освоить ООП. До этого не использовал метод, писал код используя только функции.

Вопрос такой. Есть пример простейшего кода.
Нужно сложить два числа и вывести.

Все ли правильно в этом коде? Нету ли подводных камней?
Можно ли что-то упростить в итак простейшем коде? Только функций в классе должно быть две, одна считает, другая выводит.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
class Test
{
 
    function calculate($calc1, $calc2)
    {
        $calc = $calc1 + $calc2;
        return $calc;
    }
 
    function echo_calculate($calc)
    {
        echo $calc;
    }
}
 
$object = new Test;
$page = $object->calculate(2,2);
$object->echo_calculate($page);
 
 
?>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2012, 22:58
Ответы с готовыми решениями:

Освоение 1с
Хочу на досуге попробовать освоить 1c программирование. На сколько это сложно сделать? Какой...

Освоение С++
Здравствуйте форумчане - программисты! Я - начинающий инженер-наладчик (опыт&lt;2л.), имею Высшее...

Освоение Python
Через input() в вожу формулу: x**2-2. Теперь как вместо 'x' подставить значение, чтобы посчитать?

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

16
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
20.03.2012, 23:24 2
По идеи, надо так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Test
{
 
    public function calculate($calc1, $calc2)
    {
        $calc = $calc1 + $calc2;
        return $calc;
    }
 
    public function echo_calculate($calc)
    {
        echo $calc;
    }
}
1
11 / 11 / 0
Регистрация: 05.11.2009
Сообщений: 78
20.03.2012, 23:41  [ТС] 3
А в чем тогда отличия? public ведь только делает метод доступным извне класса.
0
35 / 35 / 7
Регистрация: 27.03.2011
Сообщений: 146
21.03.2012, 11:00 4
А как вы будете вызывать функцию извне? =) Извне=вне класса

Лучше так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
class Test
{
 
    public function calculate($calc1, $calc2)
    {
        $calc = $calc1 + $calc2;
        return $calc;
    }
}
 
$object = new Test;
echo $object->calculate(2,2);
?>
Вообще в вашем примере куда лучше использовать статические методы.
0
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
21.03.2012, 11:11 5
на данном примере можно сделать статичную функцию
0
35 / 35 / 7
Регистрация: 27.03.2011
Сообщений: 146
21.03.2012, 11:12 6
Метод и функция это одно и тоже.
0
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
21.03.2012, 11:52 7
Метод и функция это одно и тоже.
Некоторые источники полагают, что "метод - функция объекта или класса". Но общей терминологии нету.
0
35 / 35 / 7
Регистрация: 27.03.2011
Сообщений: 146
21.03.2012, 12:09 8
A class may contain its own constants, variables (called "properties"), and functions (called "methods").
http://www.php.net/manual/en/l... .basic.php
Так что грамотне называть свойства и методы
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
21.03.2012, 15:24 9
Цитата Сообщение от Dimedrol Посмотреть сообщение
По идеи, надо так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Test
{
 
    public function calculate($calc1, $calc2)
    {
        $calc = $calc1 + $calc2;
        return $calc;
    }
 
    public function echo_calculate($calc)
    {
        echo $calc;
    }
}


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Test
{
    private $result;
    public function calculate($calc1, $calc2)
    {
        $calc = $calc1 + $calc2;
        $this->result = $calc;
        return $this;
    }
 
    public function echo_calculate()
    {
        echo $this->result;
    }
}
Вообще, по ООП надо так.
0
35 / 35 / 7
Регистрация: 27.03.2011
Сообщений: 146
21.03.2012, 15:31 10

Не по теме:

Давайте холиварить! :D

PHP
1
2
3
4
5
6
7
8
9
10
11
class Test
{
    public static function calculate($calc1, $calc2)
    {
        $calc = $calc1 + $calc2;
        $this->result = $calc;
        return $this;
    }
}
 
echo Test::calculate(2,2);



Бессмысленный спор. Все зависит от создаваемого приложения и поставленной задачи
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
21.03.2012, 15:43 11
Цитата Сообщение от gephaest Посмотреть сообщение

Не по теме:

Давайте холиварить! :D

PHP
1
2
3
4
5
6
7
8
9
10
11
class Test
{
    public static function calculate($calc1, $calc2)
    {
        $calc = $calc1 + $calc2;
        $this->result = $calc;
        return $this;
    }
}
 
echo Test::calculate(2,2);



Бессмысленный спор. Все зависит от создаваемого приложения и поставленной задачи
Выведет ошибку.
0
35 / 35 / 7
Регистрация: 27.03.2011
Сообщений: 146
21.03.2012, 15:46 12
KoIIIeY, ой, вы правы. Я просто скопировал пример сверху не посомтрев внимательно.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
class Test
{
    public static function calculate($calc1, $calc2)
    {
        return $calc1 + $calc2;
        
    }
}
 
echo Test::calculate(2,2);
?>
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
21.03.2012, 16:53 13
Я хотел сказать, что в первом варианте не было смысла делать это через класс. Объект не хранил никакой информации, всегда возвращал результат.
То есть смысла в ООП не было.

А в моем случае, я создал смысл, сохраняя переменную в объекте.
1
35 / 35 / 7
Регистрация: 27.03.2011
Сообщений: 146
21.03.2012, 16:56 14
Ну почему? Вы не признаете статические методы в ООП? Например в ООП-приложении можно создать дополнительный класс, куда поместить часто используемые функции. Тогда и работать проще будет.
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
21.03.2012, 17:03 15
Почему же, вполне признаю.
Но если класс содержит только статические методы, то это странный класс, ИМХО
0
969 / 71 / 9
Регистрация: 15.10.2011
Сообщений: 583
Записей в блоге: 1
22.03.2012, 10:17 16
PHP
1
2
3
4
5
class Test {
    public static function calculate($calc1, $calc2) {
        return $calc1 + $calc2;}
}
echo Test::calculate(2,2);
тут ООП не нужен
1
11 / 11 / 0
Регистрация: 05.11.2009
Сообщений: 78
22.03.2012, 23:57  [ТС] 17
Цитата Сообщение от KoIIIeY Посмотреть сообщение
Я хотел сказать, что в первом варианте не было смысла делать это через класс. Объект не хранил никакой информации, всегда возвращал результат.
То есть смысла в ООП не было.

А в моем случае, я создал смысл, сохраняя переменную в объекте.
Да я не к тому есть смысл или нет)) Просто пример привел ООП. Не было смысла что-то придумывать, в чем я еще не так хорошо разбираюсь)) Т.к изучаю хотел поинтересоваться какие есть подводные камни, все ли так. Ну а так спасибо всем))
0
22.03.2012, 23:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2012, 23:57
Помогаю со студенческими работами здесь

Освоение языка C++
Дайте пожалуйста совет. Как упростить себе усвоение языка С++(Далее хотелось бы перейти на освоение...

Освоение графики TP
Здравствуйте. Начал осваивать графику в паскале и не совсем понял : как вставить модуль с графикой...

Освоение и написание
Всем привет! Маленькая предыстория. Я человек который иногда поигрывает Доту 2. Одной важной...

Освоение git
Здравствуйте! Подскажите пожалуйста ресурсы, по которым вы осваивали git


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru