[PHP] welke aanroep van een functie is goed

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Zym0tiC
  • Registratie: Februari 2001
  • Laatst online: 14:40
Ik heb enkele functies in een class. Deze kan ik in principe op 2 manieren benaderen, maar waar zit nu precies het verschil omdat het wel gewoon op beide manieren werkt :?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// class.php


class database {

    var $table;      
    var $field;          

    function select() {
           doe_van_alles;
    }


// index.php

$database = new database;
$database->table = "art_cat";
$database->field = array('cat_id', 'name', 'adres');

$database->select();



PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// class.php


class database { 

    function select($table, $field) {
           doe_van_alles;
    }


// index.php

$database = new database;
$table = "art_cat";
$field = array('cat_id', 'name', 'adres');

$database->select($table, $field);

There is no such thing as innocence, only degrees of guilt | Flickr!


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

goed of fout lijkt me niet echt aan de orde.. de tweede manier is echter wel netter als het gaat om een database object. Als je een query-object zou maken (misschien bedoel je dat wel eigenlijk) dan is de eerste notatie weer niet zo heel vreemd.

Acties:
  • 0 Henk 'm!

  • Tom-Eric
  • Registratie: Oktober 2001
  • Laatst online: 25-03 09:11
Ik zou bij talen die geen get/set methoden hebben zoals c# ook gebruik maken van functies zoals setFieldName in plaats van er rechtstreeks iets in te veranderen.

i76 | Webdesignersgids | Online Gitaarlessen & Muziekwinkels


Acties:
  • 0 Henk 'm!

  • Zym0tiC
  • Registratie: Februari 2001
  • Laatst online: 14:40
Bij de 2de methode kun je volgens mij ook sneller fouten opvangen omdat je door een foute aanroep van de functie gelijk ziet waar de fout zit. Bij de 1ste methode krijg je de error pas midden in de functie op het moment dat de variabele niet wordt aangeroepen.

There is no such thing as innocence, only degrees of guilt | Flickr!


Acties:
  • 0 Henk 'm!

  • glashio
  • Registratie: Oktober 2001
  • Laatst online: 18-09 10:13

glashio

C64 > AMIGA > PC

2de Methode, mocht je een funktie in je Class gaan bouwen die variabelen 'Per Reference' door gaan geven.
code:
1
2
3
4
5
6
7
8
function testme(&myarray) {
  foreach( $myarray as $key => $value ) {
    echo "['".$key."']".$value;
  }
}

testme(array('foo1'=>'value1' ,'foo2'=>'value2'));
ERROR!!

[ Voor 20% gewijzigd door glashio op 29-03-2004 16:14 ]

> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing


Acties:
  • 0 Henk 'm!

  • Zym0tiC
  • Registratie: Februari 2001
  • Laatst online: 14:40
Rest mij nog een vraag, ik heb nog nooit gebruik gemaakt van Per Reference, nu heb ik wat rondgezocht maar als ik het goed begrijp maak je aan de hand van een reference een koppeling naar een andere variabele buiten je functie maar in je klas :?

ok dit hierboven zal wel als wartaal overkomen :+
tot nu toe is dat classes enzo me goed afgegaan maar dat per reference snap ik dus niet helemaal.

Iemand die me hier een beetje mee op weg kan helpen?

There is no such thing as innocence, only degrees of guilt | Flickr!


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Je hebt gewoon gelijk. Het voordeel is dat je geen kopie maakt van je variable maar een verwijzing. Zeker bij rote objecten scheelt dit enorm veel geheugengebruik.
Pagina: 1