[Ответить в тред] Ответить в тред

16/08/16 - Запущен Двач Трекер
01/08/16 - Вернули возможность создавать юзердоски
09/07/16 - Новое API для капчи - внимание разработчикам приложений


Новые доски: /obr/ - Offline Battle Rap • /hv/ - Халява в интернете • /2d/ - Аниме/Беседка • /wwe/ - WorldWide Wrestling Universe • /ch/ - Чатики и конфочки • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 60 | 3 | 13
Назад Вниз Каталог Обновить

Аноним 13/09/16 Втр 21:22:15  136097425  
14737909357040.png (8Кб, 300x200)
Можно одному из свойств класса присвоить значение другого?

Например:

class Reg {
static $leglog=3;
static $ltmin='Логин не менее '.self::$leglog;
}

ЧЯДНТ?
Аноним 13/09/16 Втр 21:25:42  136097635
$ltmin='Логин не менее '.$leglog;

а так че
Аноним 13/09/16 Втр 21:25:52  136097642
бамп
Аноним 13/09/16 Втр 21:26:53  136097691
>>136097635
Parse error: syntax error, unexpected '.', expecting ',' or ';'
Аноним 13/09/16 Втр 21:29:47  136097879
бамп
Аноним 13/09/16 Втр 21:31:07  136097963
14737914672750.jpg (13Кб, 304x186)
Не надо так делать. Если сильно хочется, юзай константы
Аноним 13/09/16 Втр 21:33:03  136098100
>>136097425 (OP)
Используйте константы.
Аноним 13/09/16 Втр 21:34:32  136098207
>>136097425 (OP)
Юзай конструкторы, люк.
Аноним 13/09/16 Втр 21:35:26  136098260
>>136098100
>>136097963
вообщем нельзя?
Аноним 13/09/16 Втр 21:37:08  136098362
>>136098207
подробнее, плз
Аноним 13/09/16 Втр 21:39:28  136098525
>>136098362
Чего подробнее?
Определяй свойства не сразу, а в конструкторе.
Если у тебя [почти]все функции статичные, то возможно имеет смысл заюзать синглтон (класс внутри хранит экземпляр своего объекта).
Аноним 13/09/16 Втр 21:43:10  136098757
>>136098525
Херню написал.
Аноним 13/09/16 Втр 21:44:16  136098818
>>136098757
И в чём я не прав?
Аноним 13/09/16 Втр 21:44:35  136098839
>>136098362
Путь джедая:

class A{
private $legLog;

public function __construct($legLog)
{
$this->legLog = $legLog;
}

public function ltmin()
{
return 'Логин не менее '.$this->legLog;
}
}

// использование
(new A(3))->ltmin();
Аноним 13/09/16 Втр 21:46:02  136098938
>>136097425 (OP)
Если парсер говорит, что так делать нельзя, значит так делать нельзя!

Fatal error: Constant expression contains invalid operations in /var/www/html/testdb/Reg.php on line 5
Аноним 13/09/16 Втр 21:46:41  136098987
>>136098839
Это не путь джедая, а путь говнокодера.
Аноним 13/09/16 Втр 21:47:11  136099025
14737924318400.jpg (40Кб, 500x334)
>>136098839
Что за дебил сделал язык из регулярок?
Аноним 13/09/16 Втр 21:47:33  136099051
>>136098525
так?
function Reg() {
self::$ltmin = 'Логин не менее '.self::$leglog;
}
чет не работает
Аноним 13/09/16 Втр 21:48:16  136099094
>>136099025
Что? Ты о чем это?
Аноним 13/09/16 Втр 21:48:19  136099099
>>136098839
нарушается вся логика задуманного
Аноним 13/09/16 Втр 21:48:39  136099118
>>136098987
схуя ли?
Аноним 13/09/16 Втр 21:49:05  136099139
>>136098260
>>136098260
Бро, конечно нельзя. Ты не можешь здесь задать динамическое значение, только константу или просто объявление. А значение будь добр в конструкторе, например.
Аноним 13/09/16 Втр 21:49:44  136099182
>>136098818
1) Конструктор не поможет, так как ОП может сразу обратиться с статическому полю без создания объекта: Class::$field, при этом конструктор не будет вызван.
2) Синглтон это обычный объект, только его на все приложение может быть в общем случае 1 штука, статические методы и переменные с ним никак не связаны. Единственное что должно быть одно приватное статическое поле, где хранится инстанс объекта, и публичный статический метод, который проверяет сохранен ли объект в вышеуказанном поле, создает и сохраняет его в это поле если он еще не создан, и возращает. В остальном это обычный объект.
Аноним 13/09/16 Втр 21:50:21  136099233
>>136099118
Потому что у тебя 10 строчек "кода", который ничего не делает, и который можно записать в две строчки
Аноним 13/09/16 Втр 21:50:30  136099243
>>136099094
%^#$@$;(@#$/)*(;#.$3$<--->
Примерно так выглядит со стороны.
Мимо-заклинатель-змей
Аноним 13/09/16 Втр 21:50:49  136099264
>>136099139

вот так? >>136099051
не работает же
Аноним 13/09/16 Втр 21:52:29  136099366
>>136099233
с каких пор много кода признак говнокода?
Отсутствие ООП - говнокод
Аноним 13/09/16 Втр 21:52:30  136099369
>>136099182
как сделать то?
Аноним 13/09/16 Втр 21:52:36  136099373
>>136099233

define('LEGLOG', 3);
define('LTMIN', 'Логин не менее ' . LEGLOG);
Аноним 13/09/16 Втр 21:53:42  136099446
>>136099369
Использовать статический метод, для получения $ltmin.
Аноним 13/09/16 Втр 21:54:20  136099487
>>136099366
Пихание ООП во все дыры, включая мамашу ОПа - говнокод.
Аноним 13/09/16 Втр 21:55:45  136099587
>>136099487
Битриксовод в треде?
Аноним 13/09/16 Втр 21:56:54  136099658
>>136099487
Cпасибо, что за меня ответил. Лучше ведь и не сформулируешь.
Аноним 13/09/16 Втр 21:57:30  136099694
>>136099587
Нет, каждой парадигме свое место. Если процедурная парадигма позволяет сделать более короткий и читаемый код, то используй ее. ООП в каждой щели признак новичка.
Аноним 13/09/16 Втр 21:58:33  136099764
>>136099446
Мне надо чтобы при использовании можно было написать вот так:
Reg::$ltmin = 'Новый текст';
Reg::что-то

но если текст будет предопределен заранее, то теряется весь смысл
Аноним 13/09/16 Втр 22:00:28  136099906
>>136099694
Ты знаешь какая задача у ОПа?
Аноним 13/09/16 Втр 22:00:32  136099911
>>136099764
class Reg {
static $leglog=3;
public static getLtmin()
{
return 'Логин не менее '.self::$leglog;
}
}

либо

class Reg {
public static getLtmin($leglog = 3)
{
return 'Логин не менее '.$leglog;
}
}
Аноним 13/09/16 Втр 22:01:45  136099987
>>136099906
Нет, но ты тоже не знаешь, но по умолчанию ебошишь сложный код. Когда тот же TDD советыет например писать сначала простейшие функции/классы, а потом рефакторить.
Аноним 13/09/16 Втр 22:02:46  136100046
>>136099911
и как мне поменять текст и значение $leglog при вызове?
Аноним 13/09/16 Втр 22:02:55  136100051
>>136099764

class Reg {
static $leglog;
static $ltmin;

static function init() {
self::$leglog = 3;
self::$ltmin = 'Логин не менее '.self::$leglog;
}
}

Reg::init();
echo Reg::$ltmin;
Аноним 13/09/16 Втр 22:03:01  136100066
>>136099264

const DEFAULT_LEGLOG = 3;

$leglog = null;
$ltmin = null;

public __construct($leglog = DEFAULT_LEGLOG) {

this->leglog = $leglog;
this->ltmin = 'Логин не менее ' . this->leglog;

}
Аноним 13/09/16 Втр 22:03:20  136100081
>>136097425 (OP)

class Reg {
static $leglog=3;
static $ltmin='Есть пасскод'.self::$leglog;
}

не благодари
Аноним 13/09/16 Втр 22:03:37  136100095
>>136099911
>>136099987
Теперь мы оба знаем что нужно ОПу
Аноним 13/09/16 Втр 22:05:18  136100193
Вот ведь вы тут говнокодеры, спорите уже 40 минут о хуите.
Аноним 13/09/16 Втр 22:08:00  136100364
>>136097425 (OP)
Зачем вообще делать это говно статическим?
Аноним 13/09/16 Втр 22:14:09  136100698
>>136099051
class Reg {
private $leglog;
private static $obj = null;
public function __construct()
{
$this->leglog = 5;
$this->ltmin = 'Логин не менее ' . $this->leglog;
}
public function _get($field) {
return $this->{$field};
}
private static function getDefaultObj() {
if(self::$obj == null) {
self::$obj = new self();
}
return self::$obj;
}
public static function __callStatic($method, $arguments) {
return call_user_func_array(array(self::getDefaultObj(), '_'.$method), $arguments);
}
}
echo Reg::get('ltmin');

>>136099182
>1) Конструктор не поможет, так как ОП может сразу обратиться с статическому полю без создания объекта: Class::$field, при этом конструктор не будет вызван.
Не факт. Сам оп практически ничего об этом не сказал, так что иди на хер с искуственными ограничениями.
>Синглтон это обычный объект, только его на все приложение может быть в общем случае 1 штука, статические методы и переменные с ним никак не связаны.
А реализуется он в пыхе через коллстатик и как раз устраняет ту проблему, которую ты создал своим ограничением. Иди на хер х2.
Аноним 13/09/16 Втр 22:16:13  136100810
>>136100698
Маразм крепчал, а говнокод становился все более говнокодистым.
Аноним 13/09/16 Втр 22:17:27  136100879
>>136100810
Это интерпрайз, крошка.
Аноним 13/09/16 Втр 22:17:39  136100888
>>136100051
>>136100046
Аноним 13/09/16 Втр 22:17:47  136100896
>>136100698
Блядь, давай сюда сразу копипасту из ларавела, зенда или что ты там куришь. Больше кода блядь!
Аноним 13/09/16 Втр 22:18:36  136100941
>>136100698
Синглтон - антипаттерн и признак плохой архитектуры, его в большинстве случаев можно заменить более красивым решением.
Аноним 13/09/16 Втр 22:19:28  136100994
С чего вы взяли, что нужен статик?
>Можно одному из свойств класса присвоить значение другого?
Ответ - нельзя на этапе объявления.
Аноним 13/09/16 Втр 22:22:43  136101178
>>136100879
А какая польза от такого интерпрайза?
Аноним 13/09/16 Втр 22:24:13  136101260
>>136100896
Тули тебе не нравится?
У тебя есть синглтон хелпера валидации. Ты же его не ради одного условия крутишь, а с возможностью расширения. В конструкторы потом напихаешь подгрузку конфигураций, добавишь возможности расширений за счёт создания новых экземпляров валидатора (можно даже синтаксис единый сохранить - магия колл и коллстатик это позволяет в лёгкую провернуть) - и в путь.
>>136100941
В некоторых случаях, при отсутствии единой структуры у приложения - в самый раз.
Те же базы, валидаторы, и тому подобное.
Хотя сейчас ванильный пыха это почти что нонсенс.
Аноним 13/09/16 Втр 22:25:48  136101353
>>136101178
Расширяемость: >>136101260
Ты написал один раз, а потом сделал 100500 валидаторов на том же коде, с использованием в любом месте и подгрузкой нужных конфигураций по необходимости.
Аноним 13/09/16 Втр 22:30:07  136101624
>>136101178
>первый паттерн
>интерпрайз
ой-вей
Аноним 13/09/16 Втр 22:31:15  136101696
>>136101353
Даже в этом случае твой код выглядит переговнокоденым.
Аноним 13/09/16 Втр 22:33:42  136101825
>>136101624
Образно, крошка, образно.
По-хорошему, это всё должно обрабатываться ещё на этапе сборки конфигурации.
Аноним 13/09/16 Втр 22:36:48  136101996
>>136101696
Займись чем-нибудь попроще, это очень простой код.
Аноним 13/09/16 Втр 22:47:10  136102606
>>136101996
Да, это простой ненужный говнокод
Аноним 13/09/16 Втр 23:38:12  136105752
>>136097425 (OP)
sdfsdf

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 60 | 3 | 13
Назад Вверх Каталог Обновить

Топ тредов
Избранное