<?php
error_reporting(-1);

function normalizePhone($number)
{
$regexp = '/^(?:\+\s*7|8)(?:[-() ]*\d){10}[-() ]*$/u';

if (!preg_match($regexp, $number)) {
return null; 
}
$digits = preg_replace('/[^0-9]/', '', $number);

if ($digits[0] === '7') {
$digits = '8' . mb_substr($digits, 1);
}
return $digits;
}

$numbers = ['8-911-404-44-11', '+7(812)6786767', '+7 999 123 4567', '02'];

foreach ($numbers as $number) {
$result = normalizePhone($number);
echo "'{$number}' => " . ($result === null ? "неверный номер" : $result) . "\n";
}