HashBy = $HashBy; $this->Hash = match ($HashBy) { HashGetType::ByString => $this->pGetHash($str), HashGetType::ByFile => $this->pGetFileHash($str) }; } /** * Получение хэша файла по строке. * * @param string $str Строка. * * @return string Хэш строки. */ private function pGetHash (string $str): string { return hash('sha256', $str); } /** * Получение хэша файла по имени файла. * * @param string $fileName Имя файла. * * @return string Хэш файла. */ private function pGetFileHash (string $fileName): string { return hash_file('sha256', $fileName); } /** * Сравнивает текущий хэш с хэшем otherHash и выдаёт true, если совпадают, и * false, если не совпадают. * * @param FileHash $otherHash Другой хэш. * * @return bool true, если совпадают, и false, если не совпадают. */ public function IsEqual (FileHash $otherHash): bool { return StringExtension::Compare($this->Hash, $otherHash->Hash, true) === 0; } }