Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Undefined index

pistemies [17.01.2018 18:10:46]

#

Outo probleema tuli PHP ohjelman kanssa, ei löydä arrayn indeksiä(avainta) joka selvästi on olemassa.

Testikapulat:

echo "<pre>";
		$keys = array_keys($zone_zone[5]);
        print_r($keys);
			if(array_search('minimum_size', $keys)){
			print_r($zone_zone[5]["mininum_size"]);
		}
echo "</pre>";
// Tulostaa
Array
(
    [0] => geo_zone_id
    [1] => title
    [2] => country
    [3] => status
    [4] => method
    [5] => calculation
    [6] => minimum_size
    [7] => maximum_size
    [8] => cost
    [9] => minimum
    [10] => maximum
    [11] => sizeuse_value
    [12] => filter
    [13] => include
    [14] => exclude
)
Notice: Undefined index: mininum_size in C:\MAMP\htdocs\3020\admin\controller\extension\shipping\zone.php on line 157

Funktiot array_keys ja array_search löytävät kyseisen indeksin, mutta print_r ja isset funktiot ei.

Lisäys:

Pieni muutos tuohon äskeiseen. Tämä löytää indeksin, paitsi print_r ei löydä sitä:

if(isset($zone_zone[5]['minimum_size'])){
  print_r($zone_zone[5]['mininum_size']);
}

Tässä isset ei löydä indeksiä, tulostaa '5'.

if($gzone['geo_zone_id'] == 5){
			echo $gzone['geo_zone_id'];
		  if( isset($zone_zone[$gzone['geo_zone_id']]['miminum_size']) ){
			 print_r($zone_zone[$gzone['geo_zone_id']]['mininum_size']);
		  }
}

Lisäys: Ps. Käytössä PHP 7.0.0

Metabolix [17.01.2018 20:56:06]

#

Virherivillä (ja virheilmoituksessa) lukee mininum eikä minimum. Viimeisessä koodissa lukee lisäksi miminum. Eli kannattaa lukea tarkemmin ja olla typottamatta. Voisit tehdä teksteistä vakioita (const), jotta saisit selvemmän ilmoituksen kirjoitusvirheistä.

const INDEX_MINIMUM_SIZE = 'minimum_size';

echo $t[INDEX_MIMINUM_SIZE];
// Warning: Use of undefined constant INDEX_MIMINUM_SIZE

Kannattaa myös päivittää PHP. Versio 7.0.0 on vuodelta 2015 ja sisältää siis monia bugeja (myös tietoturva-aukkoja), jotka ovat julkisesti tiedossa. Nykyinen versio 7.0-sarjasta olisi 7.0.27, ja myös siirtymistä 7.1- tai 7.2-sarjaan kannattaa harkita.

Lebe80 [18.01.2018 08:15:12]

#

Copy/pastea pitkät muuttujien nimet tai vastaavasti, käytä editoria, joka osaa ehdottaa muuttujien nimiä sitä mukaan kun kirjoitat. Vältyt monelta lapsukselta.

pistemies [18.01.2018 09:08:45]

#

Kiitos :)

The Alchemist [22.01.2018 12:52:34]

#

Mikä tahansa asiansa osaava editori osaa highlightata maalatun tekstinosan muut ilmentymät, jolloin typot on nopea tarkastaa vaikkei osaisi lukeakaan.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta