Nie zaczynając nowego tematu

@Mariner zaczynam dopiero przyznam że mnie to interesuje i jak mam jakąś sprawę niejasną to się zwracam do userów na forum bo często takich rzeczy na google nie ma

Ale do rzeczy, chodzi mi o funkcję zwracającą wartość, wszystko jasne mam taki kod:
<?php
function connect_database() {
//dane do bazy ukryte
$database = @new mysqli(HOST, USER, PASSWORD, DATABASE);
if($database->connect_errno) {
$output = array('type' => 'error', 'text' => 'Błąd połączenia z bazą danych! Sprawdź konfigurację połączeniową!'); return $output;
}
if(!$database->set_charset("utf8")) {
$output = array('type' => 'error', 'text' => 'Błąd wyboru kodowania!'); return $output;
}
$output = array('type' => 'success', 'text' => 'OK'); return $output;
}
$database = connect_database();
echo $database['type']. ' '. $database['text'];
?>
Co do działania tego kodu nie mam zastrzeżeń, ale skoro ja sam w funkcji definiuję co ona ma zwrócić to w przypadku wystąpienia błędu zwraca tablicę i wyświetla "Błąd połączenia z bazą danych! Sprawdź konfigurację połączeniową!" ale do tego wywala też błąd że nie można się połączyć z mysqli (wiadomo 2 linijki błędu) ale takie pytanie jako początkujący mam: wiem że dam sobie @ przed zmienną i się ten błąd już nie wyświetlia ale dlaczego tak jest? Przecież ja zwracam tylko tablicę output a ten błąd nie powinien się zwrócić... (POWINIEN? NO TAK ALE CZEMU?

)