<?php

error_reporting(-1);

$number = '+7 (905) 821-35-21'; // пользователь прислал номер
$patterns = array();
$patterns[0] = '/[-\s()]*/';
$patterns[1] = '/\+7/';
$replacements = array();
$replacements[2] = '';
$replacements[1] = '8';

$yesOrNot = preg_match('/^(\+\s?7|8)([-\s()]*\d){10}$/', $number, $matches); // проверяем корректность
    if ($yesOrNot) {
        echo "если условие выполнилось видимо номер верен \n";
        // очищаем от тире, пробелов и скобок и заменяем +7 на 8
        $number = preg_replace($patterns, $replacements, $number); 
    }      
echo $number;