Po konwersji string do Int var_dump zwraca int(0)

0

Witajcie,
od piątku nie mogę poradzić sobie z pewnym problemem, otóż gdy chcę dokonać konwersji string na int za pomocą funkcji którą w tym celu napisałem, var_dump zwraca mi int(0):

function contoint($a,$b) {
   for ($i=0; $i<count($a); $i++) {
            settype($b[$i], "integer");
   }
   $GLOBALS['b'];
}

var_dump($b);

contoint($dataFromDB, $IdentifierDB);
$IdentifierDB = $b;
//unset ($a, $b);
print "If";

contoint($dataFromDB, $numRecDB);
$numRecDB = $b;
print "Else";

Sytuacja wygląda inaczej gdy dokonam konwersji bez użycia funkcji, tzn. wszystko działa poprawnie:

for ($i=0; $i<count($dataFromDB); $i++) {
        settype($IdentifierDB[$i], "integer");
    }

    for ($i=0; $i<count($dataFromDB); $i++) {
        settype($numRecDB[$i], "integer");
    }

Funkcja pobiera dane z tablicy $dataFromDB która działa poprawnie.

Będę Wam wdzięczny za wszelkie sugestie mogące rozwiązać ten "problem" ;)

1

A co masz w $b?
Pewni wcale nie masz wcześniej takiej zmiennej, więc wyświetlasz zawartość nulla

Dlaczego po prostu nie zwrócisz tablicy $b z funkcji tylko gdzieś ją pakujesz do $GLOBALS?

Nie bardzo wiem co chcesz osiągnąć, ale wynik działania funkcji można zapisywać do zmiennej.

 
function contoint($a,$b) {
    for ($i=0; $i<count($a); $i++) {
        settype($b[$i], "integer");
    }
   //$GLOBALS['b'];
   return $b;
}

$IdentifierDB = contoint($dataFromDB, $IdentifierDB);
// $IdentifierDB = $b;
//unset ($a, $b);
print "If";
var_dump($IdentifierDB);

$numRecDB = contoint($dataFromDB, $numRecDB);
// $numRecDB = $b;
print "Else";
var_dump($numRecDB);



0

W $b mam tablicę utworzoną przy pomocy list() z wartościami liczbowymi po konwersji do int.
Po co pakuje różne rzeczy gdzie popadnie? Ponieważ jestem w tym nowy i eksperymentuję aby się nauczyć co działa a co nie ;)

Serdecznie dziękuje za pomoc, teraz działa wszytko poprawnie

1 użytkowników online, w tym zalogowanych: 0, gości: 1