Ich versuche, einen Wert in einem Array innerhalb eines Objekts dynamisch zu verwenden.
In meinem speziellen Fall habe ich ein Array wie folgt.
$this->customer = array(
[dealerId] => 4
[billFirstName] => Joe
[billLastName] => Blo
[billAddress1] => 1010s
[billAddress2] => 1020s
[billCity] => Anytown
[billState] => ST
[billCountry] => USA
[billPostalCode] => 11111
[dEmail] => emailaddress
[billPhone] => 8008008888
[password] => password
[distPrice] => 5
[distCost] => 20);
$result = $this->keyCheck('dealerId', 'customer');
Die Methode Ich verwende:
protected function keyCheck($key, $array, $type = false)
{
if(array_key_exists($key, $this->$array) && $this->$array[$key]):
return $this->$array[$key];
else:
return $type;
endif;
}
Die ersten Kontrollarbeiten (array_key_exists ($ key, $ this -> $ array)). Aber die zweite Überprüfung schlägt fehl ($ this -> $ array [$ key]), obwohl in diesem Index des Arrays ein Wert enthalten ist. Ich habe bewiesen, dass das Array in der Methode keyCheck() existiert, indem man print_r ($ this -> $ array) verwendet; innerhalb der Methode. Und ich weiß, dass der Wert, nach dem ich suche, in der Methode verfügbar ist, indem man $ this -> $ array ['dealerId'] verwendet;
Lassen Sie sich nicht von den Namen oder der verwendeten Methodik hängen, was mich wirklich interessiert, ist herauszufinden, wie man einen Wert in einem Array anspricht, das auf diese Weise dynamisch adressiert wird.
Es ist wahrscheinlich so einfach, dass ich meinen Kopf werden Slapping werde, sobald es geoffenbart ...
Sie besser Var_dump den Teil innerhalb der if-Anweisung hatten Sie sind verdächtig und sehen, was Sie erhalten. print_r darf NULL-Werten nicht vertrauen. – Melsi
Wie wäre es mit isset()? ändert es etwas? –
Danke, ich habe das versucht, und es gibt keine null-Werte im Array. Der Test innerhalb der Methode "print $ this -> $ array ['dealerId']" erzeugt den Wert, nach dem ich suche, aber die Adressierung des Indexes mit einer Variablen aus irgendeinem Grund funktioniert nicht. – Foaminator