• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Beta-testers gezocht voor Crypto-oefenplatform

    Syntax 29 januari 2026 om 16:11
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04

Marktplaats

  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07
  • Van een pixelige afbeelding naar een strakke, moderne website

    Syntax 21 december 2025 om 17:05

PHP Shorthand & meer..

  • Frenzo.Brouwer
  • 24 december 2014 om 20:28
  • Frenzo.Brouwer
    Web Developer
    Ontvangen Reacties
    35
    Berichten
    535
    • 24 december 2014 om 20:28
    • #1

    Hallo leden,

    Op het moment focus ik me volledig op het programmeren van website's, daarvoor wil ik ook steeds nieuwe technieken voor toepassen. Door dat kom ik wel tegen een aantal vragen.

    Hoe gebruik ik PHP shorthand?

    Code
    if($select->rowCount() == 0){
                    return 'This product does not exist!';
                } else {
                    return $this->product = $select->fetchAll(PDO::FETCH_OBJ);
                }
                
                /* Wat dus ook kan in een regel
                 * Alleen klopt mijn regel niet
                 * wat doe ik fout?
                 */
                
                return ($select->rowCount() == 0) ? 'This product does not exist!' : $this->product = $select->fetchAll(PDO::FETCH_OBJ);
    Toon Meer

    Daarnaast kom ik ook andere functies tegen die je kan gebruiken bij je classes. Zoals: extends & namespace.

    Hoe ik denk dat ik extends moet gebruiken :

    Stel ik heb 2 classes Clas A & Clas B
    Class A extends Class B

    Dat wil zeggen dat ik alle functies uit Class B kan gebruiken in Class A

    Daarnaast heb ik ook wat oplopen zoeken over namespaces maar ik weet niet waarvoor ik dat zou moeten gebruiken en wat voor functionaliteit het heeft?

    Wie o wie kan mijn vragen beantwoorden?

    Groeten en een fijne kerst avond!

    Eigenaar van:
    Online Marketing & Webdesign Bureau - https://marketingmetrics.nl/
    Gaming Plaform - https://onetwogaming.nl/
    Banditi - https://banditi.nl/
    Criminas - https://criminas.nl/

  • Victor
    Master
    Ontvangen Reacties
    102
    Berichten
    1.680
    • 24 december 2014 om 21:59
    • #2

    Over extend:

    Stel je hebt 2 classes. Een genaamd 'auto' en de ander genaamd 'wiel'.
    Je kunt wel doen wiel extend auto. Een auto heeft ook eigenschappen van een wiel. Het omgekeerde kan dan weer niet, want een wiel heeft niet alle eigenschappen van een auto.

    Over namespaces:

    Ik heb ze zelf nog nooit gebruikt, maar ze zijn handig als je grote projecten hebt. Je kunt dan de verschillende onderdelen van je project onderverdelen in namespaces. ;)

    Met vriendelijke groet,

    Victor
    Beheerder ICTscripters

  • DirkZz
    Intermediate
    Ontvangen Reacties
    29
    Berichten
    213
    • 24 december 2014 om 22:42
    • #3

    Het kan wel in één regel maar waarom zou je dit willen? Je code wordt er heel onduidelijk van.

    dan zou ik het nog eerder zo doen;

    PHP
    <?php
    public function getProduct()
    {
     if($select->rowCount() == 0)
     {
     return 'This product does not exist!';
     }
    
    
     return $this->product = $select->fetchAll(PDO::FETCH_OBJ);
    }
    Toon Meer

    of zo

    PHP
    <?php
    class Select
    {
     public function rowCount()
     {
     return 0;
     }
    }
    
    
    function getProduct(Select $select)
    {
     if($select->rowCount() == 0)
     {
     throw new Exception("The requested product does not exist.");
     }
    
    
     return $this->product = $select->fetchAll(PDO::FETCH_OBJ);
    }
    
    
    try
    {
     $select = new Select;
     getProduct($select);
    }
    catch (Exception $e)
    {
     echo $e->getMessage();
    }
    Toon Meer

    Qua classes zit je wel in de richting ja. Hoe je het zou kunnen zien, je hebt Users en Administratoren.
    Maar een administrator is net zo goed een gebruikers, alleen heeft deze extra functionaliteit rechten.

    dan krijg je zo iets

    PHP
    <?php
    
    
    class User
    {
     protected $gebruikersNaam;
    
    
     function __construct($gebruikersNaam)
     {
     $this->gebruikersNaam = $gebruikersNaam;
     }
    
    
     public function getGebruikersNaam()
     {
     return $this->gebruikersNaam;
     }
    
    
    }
    
    
    class Admin extends User
    {
     public function verwijderAccount()
     {
     // Doe iets om het account te verwijderen.
     }
    }
    
    
    $user = new User('DirkZz');
    $admin = new Admin('DirkZz');
    
    
    // Dit kan
    $admin->verwijderAccount(); // Kan
    $admin->getGebruikersNaam(); // Kan
    $user->getGebruikersNaam(); // Kan
    $user->verwijderAccount();  // Kan niet methode verwijderAccount bestaat niet.
    Toon Meer

    (Het forum vernaggelt al mijn inspringingen, sorry daarvoor)


    Wat betreft namespaces, deze gebruik je om bijv. Class namen meerdere keren te gebruiken in je code en om deze op een logische wijze te structureren.

    Je maakt dan een folderstructuur aan die er zo uit kan zien;

    ToonData/Csv/Genereer.php
    ToonData/Xml/Genereer.php

    met als code voor die 2 php bestanden bijv;

    PHP
    <?php namespace ToonData\Csv;
    
    
    class Genereer 
    {
        public function toon()
        {
            
        }
    }
    PHP
    <?php namespace ToonData\Xml;
    
    
    class Genereer 
    {
        public function toon()
        {
            
        }
    }

    En op de plek waar je het gebruikt;

    PHP
    <?php
    use ToonData\Xml\Genereer AS GenereerXML;
    use ToonData\Csv\Genereer AS GenereerCSV;
    
    
    $xmlGenerator = new GenereerXML();
    $csvGenerator = new GenereerCSV();
    
    
    $xmlGenerator->toon();
    $csvGenerator->toon();
    Toon Meer

    ( Zoals het in dit voorbeeld is gebruikt is het ook handig zijn om het tegen een interface aan te gooien )

  • Quitta
    C++/Java/Python/PHP/JS/CSS/XSLT/Haskell/Prolog
    Ontvangen Reacties
    6
    Berichten
    171
    • 25 december 2014 om 00:36
    • #4
    Citaat van Victor

    Over extend:

    Stel je hebt 2 classes. Een genaamd 'auto' en de ander genaamd 'wiel'.
    Je kunt wel doen wiel extend auto. Een auto heeft ook eigenschappen van een wiel. Het omgekeerde kan dan weer niet, want een wiel heeft niet alle eigenschappen van een auto.

    Over namespaces:

    Ik heb ze zelf nog nooit gebruikt, maar ze zijn handig als je grote projecten hebt. Je kunt dan de verschillende onderdelen van je project onderverdelen in namespaces. ;)

    Viktor, hier moet ik je tegenspreken. Een auto inherit(extend) niet van wiel, een auto heeft een wiel (has-a) ipv (is-a). Ipv Inheritance te gebruiken (aka extenden), ga je hiervoor composition gebruiken (Wiel objecten als members van een auto geven). Een beter voorbeeld is 'Voertuig', wat een base class zou zijn, eventueel zelf een 'abstract class' (niet zeker of dit toepasselijk is in PHP, te lang geleden), met als subclassen Auto, vrachtwagen, trein enz. Dit zijn allemaal soorten voertuigen, die voldoen aan wat een auto moet kunnen doen.

    Qua namespaces is de uiteg van DirkZz goed!
    Namespaces worden inderdaad zo goed als standaard gebruikt bij 'grotere' projecten. Dit is zeker handig in het geval wanneer je libraries gaat includen (dit is toch zo bij C++), de kans bestaat namelijk dat deze dezelfde classe namen gebruiken. Door eigen namespaces te introduceren gaat de kans op ambiguïteit naar beneden.

  • Frenzo.Brouwer
    Web Developer
    Ontvangen Reacties
    35
    Berichten
    535
    • 25 december 2014 om 16:39
    • #5

    Hallo,

    Bedankt voor de tijd die jullie namen om een goed en uitgebreid reactie te plaatsen!
    Daarnaast wil ik er ook nog wat aan toevoegen.

    PHP Shorthand:
    Ik vind het persoonlijk wel fijn werken, en ook overzichtelijk!

    Code
    ($_POST['pass1'] == $_POST['pass2']) ? true : $display[] .= 'passwords are not the same!';
        (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) ? true : $display[] .= 'This is not a valid email adres';

    Je voert in een paar korte (ik vind duidelijke) regels een controlle uit. Alleen dat is natuurlijk mening's verschillen.

    Daarnaast vind ik het voorbeeld van DirkZz het beste uitgelegd over het gebruik van Extends. Het is een handige manier op klassen met elkaar te verbinden (weer wat geleert!) Thankss!..

    De functionaliteit van namespaces is me wel duidelijk, alleen zou ik zelf niet weten hoe ik het moet gebruiken en waarbij. Maar misschien is dat omdat ik zelf geen super grote projecten heb lopen?

    In iedergeval thanks!

    Eigenaar van:
    Online Marketing & Webdesign Bureau - https://marketingmetrics.nl/
    Gaming Plaform - https://onetwogaming.nl/
    Banditi - https://banditi.nl/
    Criminas - https://criminas.nl/

  • DirkZz
    Intermediate
    Ontvangen Reacties
    29
    Berichten
    213
    • 25 december 2014 om 18:55
    • #6

    Terwijl jij het typt vind jij het handig ;)

    Maar wat als je het over een paar maand terug moet lezen omdat er een fout in zit? Of wanneer een andere programmeur er naar moet kijken omdat er iets mee is?

    Wat is dan beter denk je? Jouw voorbeeld of iets als dit;

  • Frenzo.Brouwer
    Web Developer
    Ontvangen Reacties
    35
    Berichten
    535
    • 25 december 2014 om 19:45
    • #7

    Klopt daar heb je gelijk in dat het overzichtelijker is! En makkelijker om te lezen.

    Eigenaar van:
    Online Marketing & Webdesign Bureau - https://marketingmetrics.nl/
    Gaming Plaform - https://onetwogaming.nl/
    Banditi - https://banditi.nl/
    Criminas - https://criminas.nl/

  • Victor
    Master
    Ontvangen Reacties
    102
    Berichten
    1.680
    • 26 december 2014 om 21:28
    • #8

    @Quitta

    Oeps, zie het nu! Mijn fout ;)

    Met vriendelijke groet,

    Victor
    Beheerder ICTscripters

  • blaxus
    Beginner
    Ontvangen Reacties
    3
    Berichten
    11
    • 14 november 2015 om 12:56
    • #9
    Citaat van Frenzo.Brouwer

    Hoe gebruik ik PHP shorthand?

    Code
    if($select->rowCount() == 0){
                    return 'This product does not exist!';
                } else {
                    return $this->product = $select->fetchAll(PDO::FETCH_OBJ);
                }
                
                /* Wat dus ook kan in een regel
                 * Alleen klopt mijn regel niet
                 * wat doe ik fout?
                 */
                
                return ($select->rowCount() == 0) ? 'This product does not exist!' : $this->product = $select->fetchAll(PDO::FETCH_OBJ);
    Toon Meer

    Je fout is return $this->product = $select->fetchAll(PDO::FETCH_OBJ);

    je code moet dit zijn:

    PHP
    $this->product = ($select->rowCount() == 0) ? 'This product does not exist!' : $select->fetchAll(PDO::FETCH_OBJ);

    Bewerkt één keer, laatst door blaxus (14 november 2015 om 13:27).

  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 14 november 2015 om 13:23
    • #10

    @blaxus dit topic is bijna een jaar oud :/

    Daarbij is het wellicht syntactisch correct wat je doet, maar ik zou daar wel wat semantische vragen bij hebben :).

    Er staat $this->product. Dan verwacht ik eigenlijk precies één resultaat. Een fetchAll zou dan eigenlijk misplaatst zijn want dit levert dan mogelijk meerdere resultaten op.

    Wat ik zou doen is controleren of er precies één resultaat is (rowCount() == 1) en dan dit ene resultaat retourneren (met simpelweg fetch()). Alle andere resultaten / aantallen zijn naar alle waarschijnlijkheid incorrect.

    Ook zou ik geen string als foutmelding retourneren, maar simpelweg false retourneren (wat meestal aangeeft dat er iets mis is) of een exception throwen.

  • blaxus
    Beginner
    Ontvangen Reacties
    3
    Berichten
    11
    • 14 november 2015 om 13:35
    • #11

    Wauw al een jaar. Ik had dat dus compleet niet door. Ik dacht dat ik op een notificatie had geklikt.
    Wel mijn fout waarschijnlijk.

    Ik heb de code gekopieerd zoals die aangegeven was in de topic starter.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design