@, : en ? in de code?
Ik ben sinds een paar dagen bezig met een site te maken in combinatie met een phpBB forum. Dus ik gebruik de user tabellen en zo voor mijn site zodat het een geheel wordt. Het kost me aardig wat moeite om te begrijpen hoe alles in elkaar zit maar het lukt wel aardig. Ik zie alleen vaker ?, : en @ tekens voorbij komen. Wat houden deze in?
voorbeeld:
Het gaat hier vooral om de return in dit geval.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
function create_date($format, $gmepoch, $tz)
{
global $board_config, $lang;
static $translate;
if ( empty($translate) && $board_config['default_lang'] != 'english' )
{
@reset($lang['datetime']);
while ( list($match, $replace) = @each($lang['datetime']) )
{
$translate[$match] = $replace;
}
}
return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz)); // deze dus :)
}
?>
function create_date($format, $gmepoch, $tz)
{
global $board_config, $lang;
static $translate;
if ( empty($translate) && $board_config['default_lang'] != 'english' )
{
@reset($lang['datetime']);
while ( list($match, $replace) = @each($lang['datetime']) )
{
$translate[$match] = $replace;
}
}
return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz)); // deze dus :)
}
?>
De @ is om errors te dempen, het vraagteken iets met een voorwaarde dacht ik ;)
dus dan zou dat gewoon een if else zijn.
Die @ lijkt me dan toch ook stom om te gebruiken als die de errors niet weergeeft. Zo weet je niet wat er fout gaat en gaat je script hoogstwaarschijnlijk met een foute waarde door :/
Als je meerdere bezoekers hebt, en je script werkt normaal gesproken goed, dan gebruik je @ zodat als er iets fout gaat je bezoekers ze niet zien :)
Er is nog een expressie die vreemd zal lijken als je het nog niet hebt gezien in andere talen, namelijk ternaire conditionele operator:
$eerste ? $tweede : $derde
Als de waarde van de eerste sub-expressie waar is (niet-nul), dan worde de tweede sub-expressie geevalueerd, en dit resultaat zijn van de conditionele ex
@DaeDaluz. Ja ok daar heb je gelijk in maar stel dat er wat fout zou gaan dan crasht je script waarschijnlijk gewoon op een andere plaats of de bezoeker krijgt een fout resultaat te zien.
Dan zie ik liever een error zodat ik weet dat er wat fout gegaan is dan dat ik foute getallen zie.