Можно одному из свойств класса присвоить значение другого?Например:class Reg {static $leglog=3;static $ltmin='Логин не менее '.self::$leglog;}ЧЯДНТ?
$ltmin='Логин не менее '.$leglog;а так че
бамп
>>136097635Parse error: syntax error, unexpected '.', expecting ',' or ';'
Не надо так делать. Если сильно хочется, юзай константы
>>136097425 (OP)Используйте константы.
>>136097425 (OP)Юзай конструкторы, люк.
>>136098100>>136097963вообщем нельзя?
>>136098207подробнее, плз
>>136098362Чего подробнее?Определяй свойства не сразу, а в конструкторе.Если у тебя [почти]все функции статичные, то возможно имеет смысл заюзать синглтон (класс внутри хранит экземпляр своего объекта).
>>136098525Херню написал.
>>136098757И в чём я не прав?
>>136098362Путь джедая:class A{ private $legLog; public function __construct($legLog) { $this->legLog = $legLog; } public function ltmin() { return 'Логин не менее '.$this->legLog; }}// использование(new A(3))->ltmin();
>>136097425 (OP)Если парсер говорит, что так делать нельзя, значит так делать нельзя!Fatal error: Constant expression contains invalid operations in /var/www/html/testdb/Reg.php on line 5
>>136098839Это не путь джедая, а путь говнокодера.
>>136098839Что за дебил сделал язык из регулярок?
>>136098525так?function Reg() {self::$ltmin = 'Логин не менее '.self::$leglog;}чет не работает
>>136099025Что? Ты о чем это?
>>136098839нарушается вся логика задуманного
>>136098987схуя ли?
>>136098260>>136098260Бро, конечно нельзя. Ты не можешь здесь задать динамическое значение, только константу или просто объявление. А значение будь добр в конструкторе, например.
>>1360988181) Конструктор не поможет, так как ОП может сразу обратиться с статическому полю без создания объекта: Class::$field, при этом конструктор не будет вызван.2) Синглтон это обычный объект, только его на все приложение может быть в общем случае 1 штука, статические методы и переменные с ним никак не связаны. Единственное что должно быть одно приватное статическое поле, где хранится инстанс объекта, и публичный статический метод, который проверяет сохранен ли объект в вышеуказанном поле, создает и сохраняет его в это поле если он еще не создан, и возращает. В остальном это обычный объект.
>>136099118Потому что у тебя 10 строчек "кода", который ничего не делает, и который можно записать в две строчки
>>136099094%^#$@$;(@#$/)*(;#.$3$<--->Примерно так выглядит со стороны.Мимо-заклинатель-змей
>>136099139вот так? >>136099051не работает же
>>136099233с каких пор много кода признак говнокода?Отсутствие ООП - говнокод
>>136099182как сделать то?
>>136099233define('LEGLOG', 3);define('LTMIN', 'Логин не менее ' . LEGLOG);
>>136099369Использовать статический метод, для получения $ltmin.
>>136099366Пихание ООП во все дыры, включая мамашу ОПа - говнокод.
>>136099487Битриксовод в треде?
>>136099487Cпасибо, что за меня ответил. Лучше ведь и не сформулируешь.
>>136099587Нет, каждой парадигме свое место. Если процедурная парадигма позволяет сделать более короткий и читаемый код, то используй ее. ООП в каждой щели признак новичка.
>>136099446Мне надо чтобы при использовании можно было написать вот так:Reg::$ltmin = 'Новый текст';Reg::что-тоно если текст будет предопределен заранее, то теряется весь смысл
>>136099694Ты знаешь какая задача у ОПа?
>>136099764class Reg {static $leglog=3;public static getLtmin(){ return 'Логин не менее '.self::$leglog;}}либоclass Reg {public static getLtmin($leglog = 3){ return 'Логин не менее '.$leglog;}}
>>136099906Нет, но ты тоже не знаешь, но по умолчанию ебошишь сложный код. Когда тот же TDD советыет например писать сначала простейшие функции/классы, а потом рефакторить.
>>136099911и как мне поменять текст и значение $leglog при вызове?
>>136099764class Reg { static $leglog; static $ltmin; static function init() { self::$leglog = 3; self::$ltmin = 'Логин не менее '.self::$leglog; }}Reg::init();echo Reg::$ltmin;
>>136099264const DEFAULT_LEGLOG = 3;$leglog = null;$ltmin = null;public __construct($leglog = DEFAULT_LEGLOG) {this->leglog = $leglog;this->ltmin = 'Логин не менее ' . this->leglog;}
>>136097425 (OP)class Reg {static $leglog=3;static $ltmin='Есть пасскод'.self::$leglog;}не благодари
>>136099911>>136099987Теперь мы оба знаем что нужно ОПу
Вот ведь вы тут говнокодеры, спорите уже 40 минут о хуите.
>>136097425 (OP)Зачем вообще делать это говно статическим?
>>136099051class 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.
>>136100698Маразм крепчал, а говнокод становился все более говнокодистым.
>>136100810Это интерпрайз, крошка.
>>136100051>>136100046
>>136100698Блядь, давай сюда сразу копипасту из ларавела, зенда или что ты там куришь. Больше кода блядь!
>>136100698Синглтон - антипаттерн и признак плохой архитектуры, его в большинстве случаев можно заменить более красивым решением.
С чего вы взяли, что нужен статик?>Можно одному из свойств класса присвоить значение другого?Ответ - нельзя на этапе объявления.
>>136100879А какая польза от такого интерпрайза?
>>136100896Тули тебе не нравится?У тебя есть синглтон хелпера валидации. Ты же его не ради одного условия крутишь, а с возможностью расширения. В конструкторы потом напихаешь подгрузку конфигураций, добавишь возможности расширений за счёт создания новых экземпляров валидатора (можно даже синтаксис единый сохранить - магия колл и коллстатик это позволяет в лёгкую провернуть) - и в путь.>>136100941В некоторых случаях, при отсутствии единой структуры у приложения - в самый раз.Те же базы, валидаторы, и тому подобное.Хотя сейчас ванильный пыха это почти что нонсенс.
>>136101178Расширяемость: >>136101260Ты написал один раз, а потом сделал 100500 валидаторов на том же коде, с использованием в любом месте и подгрузкой нужных конфигураций по необходимости.
>>136101178>первый паттерн>интерпрайзой-вей
>>136101353Даже в этом случае твой код выглядит переговнокоденым.
>>136101624Образно, крошка, образно.По-хорошему, это всё должно обрабатываться ещё на этапе сборки конфигурации.
>>136101696Займись чем-нибудь попроще, это очень простой код.
>>136101996Да, это простой ненужный говнокод
>>136097425 (OP)sdfsdf