Задать вопрос
nastya97core
@nastya97core
Начинающий программист

Можно ли в одном действии сразу назначить переменную, достать из неё [0] и сравнить?

Здравствуйте. Мне нужно сделать условие, при котором я проверяю: начинается ли строка со слова "Удалить" и если да, то обрабатываю вторую часть кода.
$msg = 'Удалить Александр Петров';
if(mb_strtolower(explode(' ',trim($msg), 2)[0] == 'удалить') {
	// здесь нужно работать c "Александр Петров"
}


Если я перед explode напишу $perem = explode... то он будет равен именно слову Удалить, потому что далее я вызываю [0]. Подскажите, кроме как ещё раз вызова explode - есть варианты решения?
  • Вопрос задан
  • 199 просмотров
Подписаться 1 Простой 25 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
$msg = 'Удалить Александр Петров';
$command = explode(' ', trim($msg), 2);
if(mb_strtolower($command[0]) === 'удалить') {
  // здесь нужно работать c $command[1]
}
Ответ написан
Комментировать
rpsv
@rpsv
делай либо хорошо, либо никак
А регулярки почему в сторонке отдыхают?
$re = '/^удалить (.+)$/ui';
$msg = 'Удалить Александр Петров';
if(preg_match($re, $msg, $m)) {
  $alexPetrov = $m[1];
  // здесь нужно работать c "Александр Петров"
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@JohnDidact
Нуб во всём
Если бы мне жалко было использовать регулярки, то использовал бы mb_strlen() — чтобы посчитать кол-во символов в строке 'Удалить' (ну или не считать, а самому написать). Потом mb_stripos() чтобы проверить, есть ли в строке искомая строка (Удалить) и стоит ли она вначале. Затем, mb_substr() для того, чтобы вытащить "вторую часть кода".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы