Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) 1 [2]  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Массив в ООП
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14969
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 28 дней
Карма: 443




Цитата (Wind @ 16.11.2015 - 10:41)
Правила не для вас писаны?

Не переживай, мы тут следим за Правилами smile.gif ТС получил 3 дня бана. За что именно - я думаю он понял.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 3 месяца, 22 дня
Карма: 13




Игорь_Vasinsky, ну можно наворотить со всеми проверками , вот только зачем, если ТС не может и в этих трех скромных строчках разобраться. wink.gif
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Dezigo  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Indiana Jones
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1000
Пользователь №: 5429
На форуме: 8 лет, 5 месяцев, 11 дней
Карма: 45




Не правильный подход, возврат должен быть null, но не false

	return isset($this->ar_data[$key]) ? $this->ar_data[$key] : null;



Посмотрите в сторону интерфейса ArrayAccess

public function setArData($key, $data, $remove=false) {


метод setXXX не должен возвращать результат
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11786
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 12 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 12 дней


Цитата (Dezigo @ 16.11.2015 - 14:15)
метод setXXX не должен возвращать результат

как насчет fluent setters?


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Dezigo  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Indiana Jones
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1000
Пользователь №: 5429
На форуме: 8 лет, 5 месяцев, 11 дней
Карма: 45




Цитата (Invis1ble @ 16.11.2015 - 10:21)
Цитата (Dezigo @ 16.11.2015 - 14:15)
метод setXXX не должен возвращать результат

как насчет fluent setters?

Кроме них smile.gif , так как это не результат
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 3 месяца, 22 дня
Карма: 13




Цитата (Dezigo @ 16.11.2015 - 16:15)
метод setXXX не должен возвращать результат

Вполне допускаю и возможность использования без возврата результата. Но раз вы предложили свое мнение, то подоприте его и примером обоснованным.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Dezigo  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Indiana Jones
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1000
Пользователь №: 5429
На форуме: 8 лет, 5 месяцев, 11 дней
Карма: 45




icedfox
Почитайте об идее setters, они созданы для того чтобы задавать значение но не считывать результат - если произошла ошибка, то выкидываете exception
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 3 месяца, 22 дня
Карма: 13




Dezigo, да я знаю всю эту идею геттеров/сеттеров. Вы предложили в данном случае ей следовать, ну так подкрепите свои слова оптимальным кодом, который бы соответствовал вашим словам wink.gif
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Dezigo  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Indiana Jones
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1000
Пользователь №: 5429
На форуме: 8 лет, 5 месяцев, 11 дней
Карма: 45




icedfox
Нечего особо не меняется что я написал выше, это стандартное поведение.

Вы хотите оборотиться к свойству
public function getValue($key) {
return isset($this->data[$key]) ? $this->data[$key] : null;
// например в hashMap, значение возвращается null, если элемента нету., этого хорошо для phpunit, и значение может быть false
}

// запись
public function setValue($key, $value) {
$this->data[$key] = $value;
// нужно ли вам проверять на наличие уже записанного свойства? если да, то кидаем исключение
return $this;
}


Понимаете, Вам нужно определиться что вы хотите достичь.
Уже давно всё придумано, берём пример любой и смотрим

user posted image
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 3 месяца, 22 дня
Карма: 13




Dezigo, а для проверки наличия свойства вызываем getValue ?
Итого получаем кучу строчек лишнего дублирующегося когда, только ради идеологии ?
Я вас понял.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Dezigo  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Indiana Jones
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1000
Пользователь №: 5429
На форуме: 8 лет, 5 месяцев, 11 дней
Карма: 45




icedfox
Если вам нужно проверить есть ли ключ то, containsKey($key);

Какой лишний код?
возвращать false, это ужас.

if ($class->containsKey($key)) {
echo $class->getValue($key);
}
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) 1 [2]  Ответ в темуСоздание новой темыСоздание опроса