[OOP] Aantal vragen

  • Beste Mensen,


    Ik ben sinds deze maand druk bezig geraakt met het doel om meer te leren over OOP.
    En ik heb hier dus ook een goed boek over gevonden en gekocht.


    En daar stonden een aantal termen waar ik toch wel aantal vragen over heb.


    Het gaat om de volgende termen:
    - Thisof Parent / Self.
    - If / Else of Try / Catch.


    Mijn vraag luidt als volgt:
    Wanneer moet je deze dingen gebruiken en wat is beter om te gebruiken?


    Graag wil ik dan ook een aantal ideeën horen van mensen die er al wat verder in zijn geraakt.


    Mvg,
    Niels

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.


    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML


    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Parent & Self zijn van statische klassen, wat je daarmee meer kan snap ik tot op heden ook niet. (Is denk ik voor wat overzicht te hebben welke klassen altijd worden aangeroepen.)


    Try {blablabla} is hetzelfde als if(blablabla)


    tussen try past gewoon meer ;) en bij catch kan je gebruik maken van exceptions

  • ik las dat try / catch een vernieuwde versie van if en else was en beter ofso.


    maar weet niet of ik dit dan ook echt moet toepassen..
    dus daarom hoop ik dat er mensen zijn met tips etc.


    maar weet niet of er iemand is die weet wat beter is parent & self of this.

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.


    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML


    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • Citaat van php.net

    The pseudo-variable $this is available inside any class method when that method is called from within an object context. $this is a reference to the calling object (usually the object to which the method belongs, but possibly another object, if the method is called statically from the context of a secondary object).



    Even snel getypt...
    Maar ik moet nu weg, als ik terug kom en nog niemand heeft het try catch block goed uitgelegd zal ik dat proberen.

  • Ik heb volgens mij gevonden wat ik moest weten:
    Het verschil tussen statische variabelen en standaardattributen is dat ze niet toegankelijk zijn binnen de klasse via $this. In plaats daarvan gebruik self, gevolgd door de scope resolution operator en de naam van de variabele, met zijn voorafgaande dollarteken.


    Voorbeeld:

    PHP
    class EenKlasse
    {
        public static $teller = 0;
        function __construct()
        {
            self:: $teller++
        }
    }

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.


    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML


    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • Citaat van NielsB

    ik las dat try / catch een vernieuwde versie van if en else was en beter ofso.


    maar weet niet of ik dit dan ook echt moet toepassen..
    dus daarom hoop ik dat er mensen zijn met tips etc.


    maar weet niet of er iemand is die weet wat beter is parent & self of this.


    Try is gewoon een soort van test blok. Ontstaat er een error tussen de try accolades dan vang je met Catch de fout op.


    http://nl2.php.net/manual/en/language.exceptions.php
    Staat wel zat op dacht ik zo.

  • Een try-catch block is heel iets anders als een if-else systeem.


    Try-catch blokken gebruik je voor foutafhandeling. Een voorbeeld als volgt:


    Door middel van een try-catch block kun je bepaalde code niet uitvoeren als er een fout optreed, en de rest van de code gewoon wel. Wanneer je een Exception gooit (throw new Exception()), springt hij namelijk naar het catch block. Als je geen Exception gooit, voert hij alleen het try block uit.

  • Persoonlijk vind ik dat die try, new exception & catch zaken enkel zijn ingevoerd om programmeurs van andere talen sneller naar PHP te halen.
    Zie niet in waarom men niet gewoon if else kon blijven gebruiken...


    Gebruik ze zelf ook vaak door elkaar (afhankelijk per klant/site - historisch gegroeid), wat verwarrend werkt...

  • Ik vind exceptions wel degelijk handig. Wanneer je met een framework of gewoon OOP programmeert, kunnen er dingen mis gaan in methodes, wat je niet wilt returnen. Exceptions zijn dan een betere uitkomst, mede omdat het met debuggen ook een stuk beter werkt. Daarnaast kun je de fout gewoon veel beter afhandelen in een try block, dan in een if-else statement.

  • Volgens mij is de manier van het gebruiken van een try block dat het snel en handig werkt..


    Kijk je kan ook een array maken en daarin je fouten zetten en dan gewoon weergeven via een foreach, maar volgens mij werkt het met zo'n try block sneller.

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.


    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML


    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • Zoals killingdevil al zegt is het erg handig in methodes waarin je geen vreemde dingen wilt returnen die verschillende kunnen errors voorstellen. (bij voorbeeld -1 voor fout 1, -2 voor fout 2 enz.)
    Verder is een try-catch block de enige manier om een Exception op te vangen. (tenzij je set_exception_handler() hebt gebruikt).


    Verder kun je normale errors omzetten in exceptions. (zie http://www.php.net/manual/en/class.errorexception.php)


    Maar stel je eens voor dat je een methode/functie hebt die weer een andere methode/functie aanroept en dat nog een paar keer.
    Als jij zonder exception wil laten weten dat er iets fout ging (en wilt kunnen achter halen wat bijvoorbeeld door errors codes te geven oid) dan zul je steeds rekening moeten houden met wat de methode/functie binnen die functie als error codes kan returnen...
    Als je dan ooit een de diepst geneste functie/methode aanpast zul je ook meteen alle andere functies/methodes aan moeten passen.
    Gebruik je exceptions dan maakt het niet uit wanneer je ze opvangt...
    Als je ze maar opvangt, anders krijg je een "FATAL ERROR: Uncaught Exception ..."


    Hopelijk worden mensen hier wijzer uit :p

Participate now!

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