offline version v3
Запись на курсы по HTML, CSS, JavaScript, PHP, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗ppOpClTgCCR 102 of 179 menu

Удаление CSS класса в классе Tag

Давайте теперь реализуем удаление CSS класса. Для этого было бы удобно иметь вспомогательный метод, который будет удалять элемент из массива по тексту этого элемента. В PHP, к сожалению, нет такой встроенной функции, поэтому реализуем ее в виде приватного метода:

<?php private function removeElem($elem, $arr) { $key = array_search($elem, $arr); // находим ключ элемента по его тексту array_splice($arr, $key, 1); // удаляем элемент return $arr; // возвращаем измененный массив } ?>

Используя метод removeElem мы теперь можем реализовать метод removeClass для удаления CSS классов. Реализуем:

<?php public function removeClass($className) { if (isset($this->attrs['class'])) { $classNames = explode(' ', $this->attrs['class']); if (in_array($className, $classNames)) { $classNames = $this->removeElem($className, $classNames); $this->attrs['class'] = implode(' ', $classNames); } } return $this; } ?>

Самостоятельно реализуйте описанный метод и добавьте его в ваш класс Tag. Проверьте его работу, например, так:

<?php echo (new Tag('input')) ->setAttr('class', 'eee zzz kkk') // добавим 3 класса ->removeClass('zzz') // удалим класс 'zzz' ->open(); // выведет <input class="eee kkk"> ?>