Anonymous
спс
KarmaBot
@Code_Python в этом чате принято отвечать (reply) на сообщение пользователя, чтобы его поблагодарить.
Anonymous
спс
KarmaBot
@Code_Python в этом чате принято отвечать (reply) на сообщение пользователя, чтобы его поблагодарить.
Anonymous
Anonymous
Как проверить на существование такой переменной $var = null;
Anonymous
Как проверить что у меня есть $var
Anonymous
что значит "есть"
Anonymous
то что она обьявлена и я могу работать с ней к примеру буду исопльзовать дальше if($var === null)
Anonymous
эм
Sektor
Погугли isset
Anonymous
isset не то
Anonymous
isset ему false даст на $var = null;
Anonymous
Погугли isset
не подходит) возвращает фолс
Anonymous
какая-то странная задача
Anonymous
ты переменные через var_export чтоли делаешь?
Anonymous
нет
Anonymous
Тогда зачем тебе проверять?
Anonymous
Вот тут почитай http://stackoverflow.com/questions/418066/best-way-to-test-for-a-variables-existence-in-php-isset-is-clearly-broken
Anonymous
ну да с @ но это блин гон)
Anonymous
ладно попробую избавиться от этого
Anonymous
эм, почитай ссылку что я дал
Anonymous
там есть решение
Anonymous
http://php.net/get_defined_vars вот как вариант
Anonymous
опиши свой юзкейс. ты что-то не так делаешь
Anonymous
давай все таки опишу
Anonymous
значит кидаю массив $data = [ 'name' => 'Vasya', 'confirmation_code' => 'dsaljdhqlkjdsa' // или null ] дальше если index confirmation_code установлен я добавляю к запросу на изменение записи его, если не установлен то не трогаю
Anonymous
ок, и в чем проблема?
Anonymous
Как ты добавляешь к запросу?
Anonymous
ну типа If(isset($data['confirmation_code']) ....
Anonymous
а значение null игнорит
Anonymous
мне пустую строку передавать?
Sektor
array_key_exists
Sektor
раз это массив проблемы нет о.о
Anonymous
array_key_exists
ща тестану
Anonymous
Чет ты там не то делаешь...
Anonymous
Покажи весь этот кусок кода
Anonymous
array_key_exists
спасибо, работает
KarmaBot
Спасибо (+1) для @Doldremus принято! Текущая карма +1
Sektor
выше по ссылке на http://stackoverflow.com у парня не сработало if(isset($v) || @is_null($v)), ведь должно пахать если поставить if(isset($v) && @is_null($v)) или я упоролся?
Sektor
да
Anonymous
Чет ты там не то делаешь...
$data = ['name' => 'asdasd', 'code' => null]; if (array_key_exists('name', $data)) { $model->code = $data['code']; } $model->save();
Anonymous
да
ну всмысле я поменял добавил !
Anonymous
Anonymous
чет совсем не то
Sektor
ты же confirmation_code хотел проверять
Anonymous
Ну isset у тебя должен был правильно работать
Anonymous
Или тебе null тоже надо?
Anonymous
Ну isset у тебя должен был правильно работать
isset не работает! если нулл тогда иссет фолс
Anonymous
нулл нужен да, это будет обозначать что я изменял что-то
Anonymous
а не оставлял без изменений...
Anonymous
А почему не сделать $model->update($data);?
Anonymous
ну хорошо, а там как будет проверять на нулл
Anonymous
а там не будет
Anonymous
вот тогда перейдем к такому вопросу, как реализовано там?
Anonymous
ну а мне нужно
Anonymous
Так если там будет null, то оно и поставит null
Anonymous
чтобы если я изменил обозначил поле к изменению, чтобы оно изменилось
Anonymous
Так если там будет null, то оно и поставит null
хорошо, там форичом наверное проходит, по этому не нужно ему проверять на нулл
Anonymous
Так это, а может просто пустую строку передавать, какая разница в MySQL между null и пустой строкой ''?
Anonymous
большая
Anonymous
большая
по этому я хочу нулл запихивать
Anonymous
погугли mysql difference null and empty string
Anonymous
верю на слово
Anonymous
ну так запихивай
Anonymous
делай $model->update($data) и все
Anonymous
если у тебя там null и так стоит
Anonymous
оно и поставит null
Anonymous
ну поверь мне нужно по другому
Anonymous
мне нужно вот так if (isset($attributes['confirmation_code'])) { $model->confirmation_code = $attributes['confirmation_code']; }
Anonymous
Зачем?
Anonymous
просто нужно)
Anonymous
на данном этапе работы
KarmaBot
@yokaidev я всегда к твоим услугам.
Anonymous
Ну тогда я просто не могу тееб помчь. Какие-то странные у тебя нужды.
Anonymous
та уже помогли или ты не видел?
Anonymous
$varName = null; if (isset($varName)) { // сюда мы не попадем } $definedVars = get_defined_vars(); if (isset($definedVars['varName'])) { // сюда мы не попадем } if (array_key_exists('varName', $definedVars)) { // а вот это другое дело }