You may want to put some text here

Actionscript equivalent voor PHP in_array

Als je vanuit een PHP wereld zoals mij begint met flex en actionscript dan loop je vaak tegen methods aan die wel in PHP bestonden maar niet in actionscript.

Zo botste ik vandaag nogmaals op de method in_array die niet bestaat in actionscript, om te kijken of een bepaalde variable voorkomt in een array. De eerste paar keer dat ik tegen het gemis van deze functie aanliep heb ik er gewoon voor gekozen om in mijn applicatie code zelf een functie toe te voegen die als parameters een variable en een array heeft en die het werk voor mij deden.

Dit is inderdaad een oplossing maar als je deze methode vaak gebruikt kan je beter het standaard array object extenden in een appart actionscript bestand. Zo kan je deze classe in de toekomst hergebruiken en/of eventueel nog uitbreiden met extra functies.

package be.sitebase{
	dynamic public class ExtendedArray extends Array {
	/**
		 * Constructor
		 */
		public function ExtendedArray(...args) {
			for each(var i:* in args)
			{
				super.push(i);
			}
		}

		/**
		 * Does x exist in this array
		 *
		 * @access public
		 * @param * needle
		 * @return Boolean
		 */
		public function inArray(needle:*) : Boolean {
			var index:int = this.indexOf(needle);
			return (index < 0) ? false : true;
		}
	}
}

Plaats deze code in het bestand ExtendedArray.as dat je in de map be/sitebase plaatst. Plaats deze be map vervolgens in je project src folder of include het in je project.

Vervolgens kan je de code zo gebruiken.

import be.sitebase.ExtendedArray;
var lijstje:ExtendedArray = new ExtendedArray("sitebase.be", "computerfaq.be", "computerforum.be");
trace(lijstje.inArray("computerfaq.be");

De code hierboven zal true weergeven.

The Author of this post is Wim Mostmans

Wim Mostmans heeft een eigen webontwikkeling bedrijf Sitebase waar hij voltijds voor werkt. Hij beheert ook nog enkele websites waaronder deze en een Computerforum. Blijf op de hoogte van waar Wim mee bezig is door hem te volgen op Twitter.

Leave a Comment