Misschien zouden jullie mij kunnen helpen met het volgende.
voor een reeks grafieken zou ik heel graag een array maken zoals hieronder staat, maar de lengte op basis van een maxvalue die ik uit een database haal.
Ik zou het gebruik van null-waarden in arrays vermijden, want in het gebruik zijn die niet echt intuïtief, controles met empty() en isset() op dat soort elementen leveren wellicht iets anders op dan je zou verwachten (probeer het maar eens).
Mocht je dan toch -voor wat voor obscure reden dan ook- een "leeg" element aan het einde van je array nodig hebben, gebruik dan False in plaats van Null (isset() en empty() geven dan logischer resultaten). En anders, als je dit element niet nodig hebt, in het geheel weglaten - dit maakt je code en je datastructuren minder complex en daarmee minder foutgevoelig. Als er Null-waarden in je array zitten (of als iemand deze zelf introduceert) moet er een alarmbel gaan rinkelen.
FangorN, oh false ipv null. Dat zijn 2 totaal andere types en dat zou ik nooit doen. En ja, werken met null values kan tricky zijn in PHP, maar goed zodra je dat weet weet je ook dat je dan niet met isset moet gaan werken, maar met array_key_exists. Zodra je dat weet is er niks aan de hand en moeten er zeker geen alarmbellen rinkelen.
En overigens, we zijn hopelijk al afgestapt van het gebruik van empty?
Wellicht bedoel je twee verschillende typen? Je werkt al met integer-values en iets anders. Ik gebruik zelf empty() niet, maar ik wilde het gebruik i.c.m. null aanstippen. Wat ik niet begrijp is dat je een array-element expliciet zou willen initialiseren met een waarde die gebruikt wordt voor het typeren van "geen waarde". Daarnaast heb je dan ook ineens met meerdere value-typen te maken (niet enkel integers), wat het moeilijker kan maken om met zo'n array te werken. Als je complexiteit kunt vermijden moet je dit vooral doen.
Daarom vroeg ik mij hardop af waarom die null-waarde nodig is. In mijn antwoorden ga ik meestal verder dan simpelweg het beantwoorden van de vraag, in de (vaak vergeefse) hoop dat men nadenkt over hoe je dingen slim aanpakt. Althans ik neem aan dat het de bedoeling is dat mensen die deze site bezoeken dit soort zaken op een gegeven moment zelf kunnen oplossen, in plaats van enkel het antwoord copy-pasten zonder er zelf meer over na te denken over hoe iets anders / beter kan worden opgelost? En dan liefst op een zo eenvoudig mogelijke manier, zonder "clutter" die code vaag / onleesbaar maakt.
Behalve dat ik null en integer niet als andere typen zie. In Haskell gebruik je hiervoor namelijk het Maybe type, die 2 dingen kan hebben: Just ... en Nothing. Nothing is dan de null variant van PHP en Just ... kan gebruikt worden als Just 12. Zo'n array als hierboven is dan: