Propery werkt niet mee
Ik heb deze code, snap niet wat ik fout doe, hij gaat altijd de else in.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
class Customer
{
public $_db;
public $intro;
public $content;
public $action;
public $sub;
public $id;
function __construct($action, $sub, $id)
{
$this->_db = new Database();
$action = (empty($action) ? 'list' : $action);
$sub = (empty($sub) ? 'detail' : 'detail');
$id = (isset($_GET['id'])) ? $_GET['id'] : NULL;
switch ($action)
{
case 'list':
$this->list_customer($this->action, $this->sub, $this->id);
break;
case 'wat' :
$this->extra();
break;
}
}
function list_customer($action, $sub, $id)
{
if ($sub == 'detail')
{
echo 'wzzzz';
$this->customer_detail($this->sub, $this->id);
}
else
{
//blablabla code
}
?>
class Customer
{
public $_db;
public $intro;
public $content;
public $action;
public $sub;
public $id;
function __construct($action, $sub, $id)
{
$this->_db = new Database();
$action = (empty($action) ? 'list' : $action);
$sub = (empty($sub) ? 'detail' : 'detail');
$id = (isset($_GET['id'])) ? $_GET['id'] : NULL;
switch ($action)
{
case 'list':
$this->list_customer($this->action, $this->sub, $this->id);
break;
case 'wat' :
$this->extra();
break;
}
}
function list_customer($action, $sub, $id)
{
if ($sub == 'detail')
{
echo 'wzzzz';
$this->customer_detail($this->sub, $this->id);
}
else
{
//blablabla code
}
?>
Gesponsorde koppelingen:
Code (php)
moet zijn
Code (php)
Toevoeging op 25/11/2010 11:10:55:
je kan trouwens ook zeggen:
if (empty($action)) $action = 'list';
Gewijzigd op 25/11/2010 11:21:52 door Ozzie PHP
Ozzie PHP op 25/11/2010 11:09:08:
moet zijn
Toevoeging op 25/11/2010 11:10:55:
je kan trouwens ook zeggen:
if (empty($action)) $action = 'list';
Code (php)
1
2
3
4
2
3
4
<?php
$action = (empty($action) ? 'list' : $action);
$sub = (empt($sub) ? 'detail' : 'detail');
?>
$action = (empty($action) ? 'list' : $action);
$sub = (empt($sub) ? 'detail' : 'detail');
?>
moet zijn
Code (php)
1
2
3
4
2
3
4
<?php
$action = (empty($action)) ? 'list' : $action;
$sub = (empt($sub)) ? 'detail' : 'detail';
?>
$action = (empty($action)) ? 'list' : $action;
$sub = (empt($sub)) ? 'detail' : 'detail';
?>
Toevoeging op 25/11/2010 11:10:55:
je kan trouwens ook zeggen:
if (empty($action)) $action = 'list';
Maar dit helpt hem ook niet.
Beide nog maar eens naar oop en variable.scope kijken?
Dit geval zou mooi zijn als je java deed.
Ozzie, dat kan haast niet, $action werkt namelijk wel gewoon...
Ah ja, ik weet hoe het werkt hoor ;-)
$this->list_customer($this->action, $this->sub, $this->id);
Je roept hier variabelen aan die niet geset zijn.
$this->list_customer($this->action, $this->sub, $this->id);
Je roept hier variabelen aan die niet geset zijn.
Got it fixed:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
class Customer
{
public $_db;
public $intro;
public $content;
public $action;
public $sub;
public $id;
function __construct($action, $sub, $id)
{
$this->_db = new Database();
$action = (empty($action)) ? 'list' : $action;
$sub = 'detail';
$id = (isset($_GET['id'])) ? $_GET['id'] : NULL;
switch ($action)
{
case 'list':
$this->list_customer($action, $sub, $id);
break;
case 'wat' :
$this->extra();
break;
}
}
function list_customer($action, $sub, $id)
{
if ($sub == 'detail')
{
echo 'wzzzz';
$this->customer_detail($this->sub, $this->id);
}
else{}
?>
@ Karl, wat bedoel je met JAVA?
class Customer
{
public $_db;
public $intro;
public $content;
public $action;
public $sub;
public $id;
function __construct($action, $sub, $id)
{
$this->_db = new Database();
$action = (empty($action)) ? 'list' : $action;
$sub = 'detail';
$id = (isset($_GET['id'])) ? $_GET['id'] : NULL;
switch ($action)
{
case 'list':
$this->list_customer($action, $sub, $id);
break;
case 'wat' :
$this->extra();
break;
}
}
function list_customer($action, $sub, $id)
{
if ($sub == 'detail')
{
echo 'wzzzz';
$this->customer_detail($this->sub, $this->id);
}
else{}
?>
@ Karl, wat bedoel je met JAVA?
Gewijzigd op 25/11/2010 11:19:33 door Chi Lion
Chi Lion op 25/11/2010 11:14:14:
Ozzie, dat kan haast niet, $action werkt namelijk wel gewoon...
Jullie doen beide het 'verkeerd', buitenste haakjes zijn niet nodig.
(1+1) = 2 <- haakjes niet nodig.
Bij Ozzie is het helemaal vaag.
@Ozzie, laat hem dit lekker zelf uitzoeken, paar topics terug van hem deed hij het ook al niet goed.
@Chilion, volgens mij is dit nog niet precies zoals je het wilt hebben, maar goed.
En bij java heb je dit nog veel sneller / sterker / meer.
Basic gedoe is dit.
Gewijzigd op 25/11/2010 11:21:17 door Karl Karl
Bedankt Karl, ik heb die link van je al meerdere keren doorgelezen. Ik denk dat naast het theorie tot je nemen toch ook een groot gedeelte van OOP (ofzelfs programmeren) ervaring opdoen is en fouten maken.
Deze fout zal ik nu niet meer maken (hoop ik) (2maal is scheepsrecht)
Groet,
Deze fout zal ik nu niet meer maken (hoop ik) (2maal is scheepsrecht)
Groet,
Karl, wat is bij mij vaag? Die verkorte if-statement?
Die klopt toch gewoon? Als ik google vind ik dit. Is hetzelfde toch?
$x = ($myvalue == 10) ? "the value is 10": "the value is not 10";
(http://www.lizjamieson.co.uk/2007/08/20/short-if-statement-in-php/)
Die klopt toch gewoon? Als ik google vind ik dit. Is hetzelfde toch?
$x = ($myvalue == 10) ? "the value is 10": "the value is not 10";
(http://www.lizjamieson.co.uk/2007/08/20/short-if-statement-in-php/)
Chi Lion op 25/11/2010 11:30:55:
Bedankt Karl, ik heb die link van je al meerdere keren doorgelezen. Ik denk dat naast het theorie tot je nemen toch ook een groot gedeelte van OOP (ofzelfs programmeren) ervaring opdoen is en fouten maken.
Deze fout zal ik nu niet meer maken (hoop ik) (2maal is scheepsrecht)
Groet,
Deze fout zal ik nu niet meer maken (hoop ik) (2maal is scheepsrecht)
Groet,
Je zit te klooien met de variable scope. Die $action is alleen binnen de constructor bekend, want daar is het een parameter. Het is dus geen property (wat jij volgens mij wel denkt dat het is).
Dan moet je met $this-> werken.
Ozzie PHP op 25/11/2010 11:32:15:
Karl, wat is bij mij vaag? Die verkorte if-statement?
Die klopt toch gewoon? Als ik google vind ik dit. Is hetzelfde toch?
$x = ($myvalue == 10) ? "the value is 10": "the value is not 10";
(http://www.lizjamieson.co.uk/2007/08/20/short-if-statement-in-php/)
Die klopt toch gewoon? Als ik google vind ik dit. Is hetzelfde toch?
$x = ($myvalue == 10) ? "the value is 10": "the value is not 10";
(http://www.lizjamieson.co.uk/2007/08/20/short-if-statement-in-php/)
Ja, ik weet hoe een ternary operator werkt. Mijn punt is dat jij om de functie empty nog eens haakjes gaat zetten, dat is niet nodig. Alsof je dit doet: (sin(pi))
Er worden haakjes gebruik in programmeren om duidelijkheid te maken, soms zijn ze ook vereist $p&&$q||$r (of volgens logica p^qVr), welke horen nu bij elkaar?
Je kunt dus wel doodleuk overal haakjes toevoegen, maar dat helpt niet altijd de duidelijkheid te vergroten. Je moet het dus wel toepasselijk doen. Net zoals dat je in de wiskunde dingen buiten haakjes haalt, dan worden ze soms zoveel simpeler.
De statement kan (en vind ik ook het duidelijkste) dit zijn:
$action = empty($action) ? 'list' : $action;
Ja, ik snap precies wat je bedoelt met die haakjes, maar...
ik dacht eigenlijk dat de syntax van een verkort if-statement als volgt is:
(hier je vergelijking) ? waar : onwaar
Maar als ik jou goed begrijp zeg jij dat het zo moet:
hier je vergelijking ? waar : onwaar
Dus zonder haakjes?
ik dacht eigenlijk dat de syntax van een verkort if-statement als volgt is:
(hier je vergelijking) ? waar : onwaar
Maar als ik jou goed begrijp zeg jij dat het zo moet:
hier je vergelijking ? waar : onwaar
Dus zonder haakjes?
Alles mag en kan. Maar
zegt voldoende?
EDIT:
Ik was iets eerder karl :)
Quote:
Mijn punt is dat jij om de functie empty nog eens haakjes gaat zetten, dat is niet nodig
zegt voldoende?
EDIT:
Ik was iets eerder karl :)
Gewijzigd op 25/11/2010 13:15:38 door Niels Kieviet
Moet niet, die haakjes hebben geen toegevoegde waarde. Zie ook php.net (ternary) voor nieuwe syntax met ?: (die heeft alleen een false gedeelte).
Oke, maar op php.net/ternary staat dit:
The expression (expr1) ? (expr2) : (expr3) evaluates to expr2 if expr1 evaluates to TRUE, and expr3 if expr1 evaluates to FALSE.
Met haakjes dus :-s
You got me confused now!
The expression (expr1) ? (expr2) : (expr3) evaluates to expr2 if expr1 evaluates to TRUE, and expr3 if expr1 evaluates to FALSE.
Met haakjes dus :-s
You got me confused now!
Dat staat er om aan te geven dat die delen bij elkaar horen.
Je doet dit toch ook niet? if((empty($blaat)))...?
Je doet dit toch ook niet? if((empty($blaat)))...?
nee, idd...
Naja, ik dacht dat die haken erbji hoorden.. weer wat geleerd zullen we maar zeggen... ahum ;-)
Naja, ik dacht dat die haken erbji hoorden.. weer wat geleerd zullen we maar zeggen... ahum ;-)
Met haakjes kan je de precedence, 'voorrang', aanpassen. Zie Php.net Operator Precedence
Pim - op 25/11/2010 14:04:15:
Met haakjes kan je de precedence, 'voorrang', aanpassen. Zie Php.net Operator Precedence
Klopt. Zoals ik hierboven heb gezet met logica en vereiste. Maar als het niet hoeft, vind ik het duidelijker om ze ook niet te gebruiken.



