If statement herschrijven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C# developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als C# Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the Year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »

SQL Developer

Functie omschrijving We are looking for a dutch native speaker Jij gaat in deze functie aan de slag met uitdagende projecten en het creëren van maatwerk software, vooral middels SQL. Iedere klant/project is weer anders, maar dat maakt dit bedrijf en de functie erg uniek & uitdagend. Verder heb je de volgende taken: Ontwikkelen en ontwerpen van SQL databases. T-SQL wordt hierbij gebruikt als programmeer laag; Optimalisatie van query's, voor een verbeterde efficiency; Begeleiden van junior developers, mits je dit leuk vindt; Heb je meer interesse in een rol als consultant, dan is dit ook mogelijk. Je heb hier meer

Bekijk vacature »

Back end developer Digital Agency

Functie Wij zijn van origine een wordpress bureau, maar sinds 2006 zijn wij dit wel redelijk ontgroeid. Naar mate de jaren verstreken zijn we gegroeid in omvang, maar ook in de complexiteit van opdrachten waarin wij onze klanten kunnen bedienen. Momenteel bestaat onze organisatie uit 4 front end developers, 12 back end developer 3 projectmanagers en een 2 koppig management. Wij zijn een hele informele, bijna familiaire organisatie. Geen strak pak of overhemd, nee gewoon dragen waar jij je prettig bij voelt. De gemiddelde leeftijd ligt tussen de 25 en 30 en wij doen er veel aan om onze hechte

Bekijk vacature »

Leidinggevend Full Stack Developer

Hé jij, nieuwe Pinkcuber! Ga aan de slag bij Pinkcube, online leverancier van promotieartikelen! Een innovatieve organisatie waar extra stappen zetten voor klanten de normaalste zaak van de wereld is. Ambitieus zijn we ook. ‘Naoberschap’ staat bij Pinkcube hoog in het vaandel; we helpen elkaar en iedereen is welkom. Pinkcube is Great Place to Work Certified, erkend leerbedrijf, maatschappelijk betrokken partner van stichting Present en partner van CliniClowns. En misschien wel jouw nieuwe werkgever. Wij zoeken namelijk een enthousiaste: Leidinggevend Full Stack Developer (40 uur, medior/senior) Ben jij klaar om baanbrekende ideeën tot leven te brengen en deel uit te

Bekijk vacature »

Lead javascript developer Node.js React

Functie Als fullstack JavaScript developer vind jij het uitdagend om op basis van concrete klantvragen nieuwe functionaliteiten te ontwikkelen. Bij voorkeur worden deze functionaliteiten op een bepaalde manier geprogrammeerd, zodat ze door meerdere klanten te gebruiken zijn. Je hebt dus vaak te maken met abstracte vraagstukken. Om dit te kunnen realiseren sta je nauw in contact met de product owner en/of klant. Je bent niet alleen onderdeel van het development team, maar hebt ook vaak contact met de product-owner en/of klanten om daardoor inzichten te verzamelen die leiden tot productverbeteringen. • Inzichten verzamelen bij de klant en/of product owner •

Bekijk vacature »

Full stack developer Node.js

Functie Als fullstack JavaScript developer vind jij het uitdagend om op basis van concrete klantvragen nieuwe functionaliteiten te ontwikkelen. Bij voorkeur worden deze functionaliteiten op een bepaalde manier geprogrammeerd, zodat ze door meerdere klanten te gebruiken zijn. Je hebt dus vaak te maken met abstracte vraagstukken. Om dit te kunnen realiseren sta je nauw in contact met de product owner en/of klant. Je bent niet alleen onderdeel van het development team, maar hebt ook vaak contact met de product-owner en/of klanten om daardoor inzichten te verzamelen die leiden tot productverbeteringen. • Inzichten verzamelen bij de klant en/of product owner •

Bekijk vacature »

Junior Front-End Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale oplossingen van Coolblue. Wat doe je als Junior Front-End Developer bij Coolblue? Als Junior Front-End Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen. Op dat moment komt je wil om te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te maken. Je sterk analytisch vermogen komt dan goed van pas! Ook Junior Front-End Developer worden bij Coolblue?

Bekijk vacature »

Gezocht: .Net ontwikkelaars met een maatschappelij

Bedrijfsomschrijving Zoek jij als medior .Net ontwikkelaar een inspirerende werkplek bij een bedrijf met maatschappelijk verantwoordelijkheidsgevoel? Dan is deze vacature je op het lijf geschreven. De organisatie bestaat ruim 20 jaar en ze ontwikkelen in house applicaties waarmee de zorgsector enorm mee gebaat is. Jouw applicaties worden gebruikt door duizenden gebruikers waardoor je echt een waardevolle bijdrage kan leveren aan de maatschappij. Het bedrijf is zeer innovatief en vindt een goede werk/privé balans belangrijk. Je krijgt alle mogelijkheden om jezelf verder te ontwikkelen, je werktijden in te delen en daarnaast is het ook mogelijk om deels thuis te werken. Het

Bekijk vacature »

Front End Ontwikkelaar (React)

In het kort Als front end developer ga je aan de slag met maatwerkprojecten voor onze klanten. Denk bijvoorbeeld aan het toevoegen van een machine aan een database of het corrigeren van formulieren voor ingestuurde orders. Voorbeeld van zo’n project is Smart Link. De projecten waar je op ingezet kunt worden liggen binnen het technische domein waar jij als front end developer een grote rol speelt om samen met je back end collega’s de juiste oplossingen te leveren. please note that this particular role requires fluent Dutch language skills. Dit vind je leuk om te doen Het omzetten van designs

Bekijk vacature »

Back end developer Digital agency

Functie Heb jij altijd al eens bij een bedrijf willen werken waar jij géén nummertje bent, die alleen maar uitvoerend werk doet? Dan zou je hier perfect passen! Tuurlijk, je werkt aan projecten voor grote of kleine bedrijven… Het enige verschil hier is, jouw mening telt hier écht. Jouw inbreng wordt gewaardeerd, serieus genomen en gebruikt. En vergeet niet, je werkt niet alleen aan deze projecten. Er werken in totaal ruim 20 developers en designers, onderverdeeld over 3 development teams. Voornamelijk bestaande uit Medior en Senior developers, die samen voor een inspirerende en ambitieuze omgeving zorgen. Hun visie is namelijk

Bekijk vacature »

Front-end Developer

Onze klant is sinds 2 jaar actief als adviseur en bemiddelaar in de verzekeringsmarkt. Sindsdien proberen zij deze slapende markt flink wakker te schudden. Dit willen zij doen door het bouwen van slimme vergelijkers op hun eigen website en die van partners. Het bedrijf wil continu voorop lopen, zodat consumenten eenvoudig de verzekeringen kunnen vinden die het beste bij ze past. Functieomschrijving Als Front-end Developer werk je aan vergelijkingsmodules die consumenten dagelijks gebruiken bij het vergelijken en afsluiten van verzekeringen. Je vindt het leuk om samen te werken met de product owner, bestaande modules te verbeteren en nieuwe vergelijkers "from

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Back end Node.js developer

Functie Het ontwikkelteam bestaat momenteel uit 5 (back-end) Developers, 2 systeembeheerders, 1 DevOps engineer, 1 Tech Lead en 2 Scrum Masters. Samen wordt er doorontwikkeld aan twee SaaS-platformen die in een hoog tempo doorontwikkeld moeten worden. Omdat innovatie een belangrijk speerpunt binnen de organisatie is, wordt er ook continu naar snellere en slimmere oplossingen te bedenken en realiseren. Als Back-end Developer hou jij je dagelijks bezig met vraagstukken zoals: API-development, high volume datastromen, het ontwikkelen van Bots aan de hand van A.I. Daarnaast denk en werk jij mee aan de onlineapplicaties voor klanten. Er wordt zelfstandig en in teamverband gewerkt

Bekijk vacature »

.NET developer

Functie Jij begint als .NET ontwikkelaar in een team met 10 andere Software Engineers. De werkzaamheden zijn afwisselend, zo kan het dat jij bezig bent met volledig nieuwe features of het door ontwikkelen van bestaande sites of shops. Wij ontwikkelen web applicaties, maar ook mobiele applicaties. Daarnaast bijt jij je soms ook van in externe koppelingen met systemen zoals een ERP. Als team is er een duidelijke focus m.b.t. het waarborgen van de performance en snelheid van webshops. Ook zijn wij expert op het gebied van configuratoren. Kortom enorm veel afwisselende werkzaamheden! Ook jouw werkplek kan afwisselend zijn. Soms heb

Bekijk vacature »

IT Manager team PaaS

TenneT is hard groeiende om haar ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Lead PaaS die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je wordt de Teammanager (Lead) van een nieuw team binnen de afdeling Basic van Information Technology and Facilities (ITF) van TenneT. Het team heet Platform as a Service. Hier wordt elke dag in een goede sfeer met zijn allen hard gewerkt om vanuit IT

Bekijk vacature »
Salvatore Luciano

Salvatore Luciano

22/10/2015 19:27:41
Quote Anchor link
Volgens mij moet dit niet moeilijk zijn maar hoe zou ik dit stuk kunnen herschrijven zodat de if-statement wat simpeler en mooier is?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
<div class="box" id="error_message_box" style="<?php
                                               if($errors == true){
                                                     echo "
display: block;";
                                               } else {
                                                      echo "
display: none;";
                                               }?>"
>
?>
Gewijzigd op 22/10/2015 19:29:01 door Salvatore Luciano
 
PHP hulp

PHP hulp

05/11/2024 10:57:40
 
Marthijn Buijs

Marthijn Buijs

22/10/2015 19:41:01
Quote Anchor link
Zoiets?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<div class="box" id="error_message_box" style="display: <?php echo ($errors == true) ? 'block' : 'none'; ?>;">
Gewijzigd op 22/10/2015 22:55:29 door Marthijn Buijs
 
Willem Liu

Willem Liu

22/10/2015 23:23:39
Quote Anchor link
Ik zou persoonlijk kiezen om zo min mogelijk PHP logica te verweven met HTML. De IF-statement heb ik in het voorbeeld hieronder buiten de HTML gelaten. De uiteindelijke waarde die ik nodig heb in de HTML zet ik in een variabele en parse ik in de String die ik wil tonen.

Zoals je kunt zien heb ik ook een HEREDOC voorbeeld toegevoegd. Dit is met name handig als je enorme lappen tekst wilt opslaan in een variabele, maar niet je hoofd wilt breken over single/double quotes. HEREDOC ondersteund ook variabelen dus je kan je logica buiten je HTML houden en middels variabelen injecteren.

Het is ook mogelijk om een wrapper functie te schrijven waardoor je zelfs functie-aanroepen kunt doen vanuit je HEREDOC tekst, maar misschien gaat dat wat te ver voor dit voorbeeld.

Laat maar weten of dit is wat je zocht.



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$displayStyle
= "block";
if($errors !== true){
  $displayStyle = "none;";
}


echo "<div class='box' id='error_message_box' style='display: {$displayStyle}'>";

/**
 * Dit doet hetzelfde als hierboven, maar je kan zoveel vrije tekst neerzetten als je
 * wilt zonder rekening te hoeven houden met quotes.
 */

$heredoc = <<<EOF
    <div class='box' id='error_message_box' style='display: {$displayStyle}'>
EOF
;
echo $heredoc;
?>
Gewijzigd op 23/10/2015 08:00:16 door Willem Liu
 
Ozzie PHP

Ozzie PHP

23/10/2015 00:31:21
Quote Anchor link
@Willem: waar komen die accolades vandaan? {$displayStyle}
 
Willem Liu

Willem Liu

23/10/2015 08:06:24
Quote Anchor link
Ozzie PHP op 23/10/2015 00:31:21:
@Willem: waar komen die accolades vandaan? {$displayStyle}


@Ozzie: De accolades gebruik ik in Strings om duidelijker aan te geven dat er een variabele staat. Dit is ondersteund in PHP Strings als deze met dubbele quotes wordt gemaakt "{$var}". Met enkele quotes werkt het niet.

Dit gaat dus fout: '{$var}'

Verscheidene editors, waaronder Notepad++, geven bij een String de accolades aan met een andere kleur.

Ik vind het persoonlijk daarom duidelijker om altijd accolades te gebruiken voor PHP variabelen in Strings.
 
Marthijn Buijs

Marthijn Buijs

23/10/2015 09:02:27
Quote Anchor link
Mijn voorbeeld was gewoon goed hoor?
Ik kan me voorstellen dat niet iedereen zit te wachten op de HEREDOC-syntax.
 
Willem Liu

Willem Liu

23/10/2015 09:14:08
Quote Anchor link
PHP Maarten op 23/10/2015 09:02:27:
Mijn voorbeeld was gewoon goed hoor?
Ik kan me voorstellen dat niet iedereen zit te wachten op de HEREDOC-syntax.


M'n bericht was geen reactie op jou bericht, maar direct op de originele post.
 
Ward van der Put
Moderator

Ward van der Put

23/10/2015 09:50:28
Quote Anchor link
Het voordeel van de oplossing van Willem is dat je later gemakkelijker een scheiding kunt aanbrengen tussen de view (die $displayStyle instelt) en een template (waarin {$displayStyle} alleen wordt geëchood).

Er valt mij echter iets anders op in de logica. Als je een div met id="error_message_box" hebt die alleen bij $errors == true wordt getoond, wordt die klaarblijkelijk uitsluitend gebruikt voor foutmeldingen. Het is dan niet efficiënt om die div te echoën en die vervolgens met display="none" te verbergen. Dan kan het bijvoorbeeld zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php if ($errors == true): ?>
<div class="box" id="error_message_box">...</div>
<?php endif; ?>
 
Frank Nietbelangrijk

Frank Nietbelangrijk

23/10/2015 10:05:57
Quote Anchor link
>> Het voordeel van de oplossing van Willem is dat je later gemakkelijker een scheiding kunt aanbrengen tussen de view (die $displayStyle instelt) en een template (waarin {$displayStyle} alleen wordt geëchood).

Ieder heeft natuurlijk zo zijn voorkeuren maar als we nu over templates gaan praten pak dan gewoon direct een template engine (Twig). Persoonlijk vind ik dat een variabele in PHP al heel goed herkenbaar is door de $. Daarnaast is het plaatsen van de variabele in de tekst wat langzamer als dat je het gewoon met punten (.) er tussen plakt.
Gewijzigd op 23/10/2015 10:06:39 door Frank Nietbelangrijk
 
Willem Liu

Willem Liu

23/10/2015 11:43:34
Quote Anchor link
Frank Nietbelangrijk op 23/10/2015 10:05:57:
>> Het voordeel van de oplossing van Willem is dat je later gemakkelijker een scheiding kunt aanbrengen tussen de view (die $displayStyle instelt) en een template (waarin {$displayStyle} alleen wordt geëchood).

Ieder heeft natuurlijk zo zijn voorkeuren maar als we nu over templates gaan praten pak dan gewoon direct een template engine (Twig). Persoonlijk vind ik dat een variabele in PHP al heel goed herkenbaar is door de $. Daarnaast is het plaatsen van de variabele in de tekst wat langzamer als dat je het gewoon met punten (.) er tussen plakt.


@Frank, je hebt gelijk dat een . concatenatie marginaal sneller is dan variabelen in de String te plaatsen.

Wellicht een interessante discussie om te lezen over het nut versus performance van beide technieken: http://stackoverflow.com/questions/3316060/single-quotes-or-double-quotes-for-variable-concatenation

Uiteindelijk is de performance-impact zo gering dat onderhoudbaardheid/leesbaarheid van code wellicht een belangrijkere overwegingsfactor is.

Het gebruiken van templating engines is inderdaad een goed alternatief en zeker een meer "gevorderde" oplossing op de vraag van de originele poster.

Echter denk ik ook dat het goed is om van tevoren na te denken over het gebruik van frameworks. Als je weet dat je heel veel functionaliteit van een specifiek framework gaat gebruiken dan is het uiteraard logisch dat je het betrekt in je project. Maar gebruik je echter maar een kleine fractie ervan dan is de overhead van zo'n framework wellicht niet gewenst.

Al met al denk ik dat we Salvatore veel goede mogelijkheden hebben laten zien.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

23/10/2015 12:38:25
Quote Anchor link
Willem,

We zijn het eens hoor, de snelheidswinst is geen overgroot voordeel. Ik zie het dan ook als persoonlijke voorkeuren. Ik ben zelf groot voorstander van (een goed) framework maar alleen als je aan een nieuwe website / nieuw project gaat beginnen. Een bestaand project dat redelijk in elkaar steekt moet je waarschijnlijk lekker zo laten. Ik zie echter ook heel veel rampzalig geschreven websites die je absoluut niet wilt aanpassen. Ook dan is het wat mij betreft tijd voor herschrijven en een framework... Maar goed we dwalen af en ik wil dit topic niet kapen...
 
Salvatore Luciano

Salvatore Luciano

25/10/2015 11:54:52
Quote Anchor link
@PHP Maarten: Hoi Maarten, dit was inderdaad wat ik bedoelde. Hartstikke bedankt!

@Willem Liu: Hoi Willem, ik denk dat ik inderdaad moet gaan beginnen met het scheiden van HTML en PHP. Bedankt voor het voorbeeld van HEREDOC. Ik denk dat ik me hier maar eens wat in ga verdiepen. Ook jij hartstikke bedankt!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.