• 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. Overig
  4. Check-Me

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

  • 350 Nieuwe Domeinnamen Januari 2026

    shiga 1 februari 2026 om 14:21
  • 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

[Check] OOP class

  • J.Rijdes
  • 21 december 2013 om 17:06
  • J.Rijdes
    Elite members
    Ontvangen Reacties
    37
    Berichten
    1.581
    • 21 december 2013 om 17:06
    • #1

    Hallo,

    Momenteel ben ik bezig met het oefenen van OOP programmeren. Ik heb nu een class gemaakt wat werkt, maar is het ook op de juist manier en gebruikt ik niet teveel overbodige dingen in mijn class? Graag hoor ik van jullie.

    Mijn script:

    PHP
    <?php
    
    
    include_once('connection.php');
    
    
    class Melding {
    
    
    	public $db;
    
    
    	public function __construct(){
    		$this->db = new Connection();
    		$this->db = $this->db->dbConnect();
    	}
    
    
    	public function showMeldingen() {
    		$st = $this->db->prepare("SELECT * FROM meldingen");
    		$st->execute();
    		$show = $st->fetchAll();
    
    
    		foreach($show as $row) {
    			echo "<b> " . $row['melding_titel'] . " </b> ";
    			echo "<br>";
    			echo nl2br($row['melding_eenheden']);
    			echo "<hr>";
    		}
    	}
    	public function postMelding($melding_titel, $melding_eenheden) {
    		if($melding_titel == "") {
    			return "Geen titel ingevuld.";
    		} elseif($melding_eenheden == "") {
    			return "Geen eenheden ingevuld";
    		} else {
    			$st = $this->db->prepare("INSERT INTO meldingen (melding_titel, melding_eenheden) VALUES (?, ?)");
    			$st->BindParam(1, $melding_titel);
    			$st->BindParam(2, $melding_eenheden);
    			$st->execute();
    		}
    	}
    }
    
    
    ?>
    Toon Meer

    Alvast bedankt.

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Luc
    Software Engineer
    Ontvangen Reacties
    44
    Berichten
    1.986
    • 22 december 2013 om 13:32
    • #2

    Waarom heb je $db public gemaakt?

    Voorkom in je class dat je gaat echo'en dat is niet super netjes.

    Website: https://devimo.nl
    Skype: https://join.skype.com/invite/dJyYILTt7Eqh

  • WHMCSAddons
    Master
    Ontvangen Reacties
    88
    Berichten
    2.411
    • 22 december 2013 om 13:36
    • #3

    Met Luc eens, een variable die (ik vermoed) als database connectie gaat moet je binnen de class houden, erbuiten is niet nodig.

    private - Only the current class will have access to the field or method.
    protected - Only the current class and subclasses (and sometimes also same-package classes) of this class will have access to the field or method.
    public - Any class can refer to the field or call the method.

    http://stackoverflow.com/questions/1020…ted-programming

  • J.Rijdes
    Elite members
    Ontvangen Reacties
    37
    Berichten
    1.581
    • 22 december 2013 om 17:16
    • #4

    Bedankt, dit ga ik gelijk aanpassen. Hoe kan ik dat met de echo beter oplossen? Door een return of een hele andere manier?

  • M.Beers
    Elite members
    Ontvangen Reacties
    31
    Berichten
    460
    • 22 december 2013 om 18:45
    • #5
    Citaat van Wmdiensten

    Met Luc eens, een variable die (ik vermoed) als database connectie gaat moet je binnen de class houden, erbuiten is niet nodig.

    private - Only the current class will have access to the field or method.
    protected - Only the current class and subclasses (and sometimes also same-package classes) of this class will have access to the field or method.
    public - Any class can refer to the field or call the method.

    http://stackoverflow.com/questions/1020…ted-programming

    Nog een aanvullig hierop waarvan ik niet helemaal zeker weet of dit al doorgevoerd is in PHP maar vast en zeker gaat komen...
    Wanneer je geen public, protected of private gebruikt is het alleen toegestaan binnen de package waar je classe zich in bevindt. Vanaf PHP 5.3 kan je gebruik maken van packages in php namespaces genoemd.

    http://php.net/namespaces

    Citaat

    Bedankt, dit ga ik gelijk aanpassen. Hoe kan ik dat met de echo beter oplossen? Door een return of een hele andere manier?

    Het is gebruikelijk om je uitvoer/acties en je layout gescheiden te houden. Het meest gebruikte pattern is hiervan het MVC pattern. Dus eigenlijk echo je nooit wat maar return je de array die je vervolgens verwerkt in je layout/html bestanden.

    Dit was mijn spreekbeurt, zijn er nog vragen?

  • Victor
    Master
    Ontvangen Reacties
    102
    Berichten
    1.680
    • 22 december 2013 om 20:36
    • #6

    Een object georienteerde class hoor je te kunnen hergebruiken zonder de code aan te passen. Dat kan in dit geval niet. Mocht ik een Engelse site hebben, zou ik de meldingen moeten aanpassen. Misschien wil ik wel dat er helemaal geen melding komt, maar dat hij alleen wordt gelogd.

    Met vriendelijke groet,

    Victor
    Beheerder ICTscripters

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 22 december 2013 om 21:48
    • #7

    Alles wat hierboven wordt gezegd klopt, maar wat ik nog niet heb gehoord is dat je fundamenteel de fout in gaat.

    Een melding, wat kan die? Een melding kan denk ik niet een melding opslaan of alle meldingen weergeven. Een melding is in jouw geval een domeinobject en heeft vooral dingen en kan niet zozeer iets zelf doen. Een melding heeft bijvoorbeeld een titel en een bericht.

    De class hierboven is daarom ook de MeldingService, en niet de melding zelf.. En dat object hoor je ook te hebben!

  • J.Rijdes
    Elite members
    Ontvangen Reacties
    37
    Berichten
    1.581
    • 22 december 2013 om 21:56
    • #8

    Bedankt allen. Ik heb even wat aanpassing gedaan en ben aan het nadenken hoe ik het beter zonder echo's of return's met tekst kan doen, maar met variabelen. Ik ben volgens mij een eindje op weg, maar ook op de goede weg?

    PHP
    <?php
    
    
    include_once('connection.php');
    
    
    class MeldingService {
    
    
    	private $db;
    
    
    	public function __construct(){
    		$this->db = new Connection();
    		$this->db = $this->db->dbConnect();
    	}
    
    
    	public function checkMeldingTitel($input, $error) {
    			if($input == "") {
    			return $error;
    			} else {
    				$error_count = 0;
    			}
    		}
    
    
    	public function checkMeldingEenheden($input, $error) {
    			if($input == "") {
    			return $error;
    			} else {
    				$error_count = 0;
    			}
    		}
    
    
    	public function saveMelding($melding_titel, $melding_eenheden, $error) {
    			if($error_count == 0) {
    			$st = $this->db->prepare("INSERT INTO meldingen (melding_titel, melding_eenheden) VALUES (?, ?)");
    			$st->BindParam(1, $melding_titel);
    			$st->BindParam(2, $melding_eenheden);
    			$st->execute();
    			} else {
    				return $error;
    			}
    		}
    	}
    }
    
    
    ?>
    Toon Meer
  • WHMCSAddons
    Master
    Ontvangen Reacties
    88
    Berichten
    2.411
    • 23 december 2013 om 00:29
    • #9

    Waarom maak je geen Class van je database en roep je alles door middel van 1 bestand die een autoload heeft ?

    http://php.net/autoload

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

Gebruikers die dit topic bekijken

  • 2 Gasten
  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