Variables versturen via includes
Weer allemaal problemen:s
ik kan geen variable die gezet word in een functie oproepen uit een andere pagina.
voorbeeld:
test.php
testing.php
Het is belangrijk dat er een variable word aangemaakt, die in dit geval door test.php aan te roepen is. Om te werken met return true; is niet afdoende omdat er in dezelfde functie meerdere variables gezet moeten gaan worden.
iemand?
ik kan geen variable die gezet word in een functie oproepen uit een andere pagina.
voorbeeld:
test.php
testing.php
Het is belangrijk dat er een variable word aangemaakt, die in dit geval door test.php aan te roepen is. Om te werken met return true; is niet afdoende omdat er in dezelfde functie meerdere variables gezet moeten gaan worden.
iemand?
test.php:
testing.php:
edit:
testing.php:
werkt ook denk ik. Maar global is niet iets wat je wil gebruiken.
testing.php:
edit:
testing.php:
werkt ook denk ik. Maar global is niet iets wat je wil gebruiken.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
kijk eens naar constanten...
define();
const
en anders moet je de functies iets laten returnen!
let wel dat de functie stopt na return!
define();
const
en anders moet je de functies iets laten returnen!
let wel dat de functie stopt na return!
Code (php)
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
//index.php
include_once('include.php');
$blaat = test(); //functie...
echo $blaat;
?>
//index.php
include_once('include.php');
$blaat = test(); //functie...
echo $blaat;
?>
Gewijzigd op 01/01/1970 01:00:00 door Lode
globals zou ik je zoiezo afraden!!!
Hmm, ben bang dat ik een te makkelijk voorbeeld heb gegeven.
Nog een dan, want jullie antwoorden zijn volgens mij niet afdoende:
test.php
testing.php
zoals je ziet is de bedoeling dat de functie doorloopt, dus geen returns.
hopelijk heeft dit het wat duidelijker gemaakt
Nog een dan, want jullie antwoorden zijn volgens mij niet afdoende:
test.php
Code (php)
testing.php
Code (php)
zoals je ziet is de bedoeling dat de functie doorloopt, dus geen returns.
hopelijk heeft dit het wat duidelijker gemaakt
function Testme($a, $b, &$error)
??
??
Yay! That did it, thank you!
Martijn, wat loop je onhandig te doen met &$error? Zo lijkt het erop alsof dat een argument van de functie is. Ik zou eerder op het einde van je functie de variabele die teruggegeven moet worden returnen. Dus zo:
Zegeensa.php:
Script.php:
Et voila, je ziet nu aa : ).
Zegeensa.php:
Script.php:
Et voila, je ziet nu aa : ).
Een $var die je in een functie aanmaakt is alléén in de functie bekend. Dus je kan met global of met return gaan werken.
@djemo
Hij reageert op mijn 2e post. niet mijn 1e. zo werkt het wonderen voor mij.
zoals ik ook aangaf is het voor mij niet voldoende om met returns te werken omdat deze de functie stoppen.
@SanThe
Het werkt met &$error voor mij goed. Zit er andere voordelen aan het werken met globals?
Hij reageert op mijn 2e post. niet mijn 1e. zo werkt het wonderen voor mij.
zoals ik ook aangaf is het voor mij niet voldoende om met returns te werken omdat deze de functie stoppen.
@SanThe
Het werkt met &$error voor mij goed. Zit er andere voordelen aan het werken met globals?
Gewijzigd op 01/01/1970 01:00:00 door Thijs Damen
'Thijs:
Voordelen? Je krijgt meer bugs, maar om dat nu voordelen te noemen...Zit er andere voordelen aan het werken met globals?
Je zult heel goed moeten documenteren dat een variabele voor bepaalde functies essentieel is. Dan kun je ze gebruiken, maar documenteren is niet bepaald een kwaliteit van programmeurs, ik heb ze er de afgelopen jaren nog niet op weten te betrappen.
Zelf gebruik ik nooit globals, puur om bugs te vermijden.
Dus Maartijns voorbeeld blijft het beste,
bedankt voor alle reacties, weer wat geleerd.
bedankt voor alle reacties, weer wat geleerd.
Dat noemen ze een reference &$test...
Zie handleiding...
http://www.php.net/manual/en/language.references.php
Zie handleiding...
http://www.php.net/manual/en/language.references.php
Het kan ook wel op zo'n manier Thijs. Je kan dan een ontiegelijk lange lijst met woorden meegeven. Nu geef je er 2 mee die altijd of 3 of 5 lang moeten zijn. Stel dat je een 3e woord toe wilt voegen van een bepaalde lengte. Ik heb het herschreven naar wat dynamischers.
test.php
testing.php
test.php
Code (php)
testing.php
Code (php)
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
'Robert_Deiman:
Het kan ook wel op zo'n manier Thijs. Je kan dan een ontiegelijk lange lijst met woorden meegeven. Nu geef je er 2 mee die altijd of 3 of 5 lang moeten zijn. Stel dat je een 3e woord toe wilt voegen van een bepaalde lengte. Ik heb het herschreven naar wat dynamischers.
....
....
Waar het mij voornamenlijk om ging was de manier, de code die er stond was puur als voorbeeld genomen.
de uiteindelijke functie hiervan heb ik gebruikt in een registratie script.
Hier geef ik momenteel 2 variable mee met de 3 functies. (controleer email, controleer username, controleer wachtwoord). Deze doen hoen werk en zodra er iets fout gaat voegen zij dit toe aan de meegegeven variables (arrays).
Dan controleer ik of er iets in deze arrays staat, zoja,
laat dan zien wat er fout is gegaan, maak de labels netjes en mooi rood en klaar.
Een functie is er eigenlijk op gebaseerd dat het maar 1 return kan doen.
Dat kan inderdaad wel een array zijn.
Maar je hebt hier over 3 heel verschillende dingen (mail / naam / ww).
Dus splits het gewoon op. Single-Responseability gaat je uiteindelijk meer werk en problemen opleveren...
Daarnaast laat strlen(); ook gewoon 6 spaties door of 6 ./$?# e.d.
Zolas ik je al eerder heb aangegeven heb je andere functies om ook de inhoud van de string te controleren. Klein voorbeeldje in php5 / OOP met reguliere expressies.
EDIT:
aan te roepen als:
echo var_dump(); kan weg natuurlijk is alleen om even de uitkomst naar het scherm te spugen....
Dat kan inderdaad wel een array zijn.
Maar je hebt hier over 3 heel verschillende dingen (mail / naam / ww).
Dus splits het gewoon op. Single-Responseability gaat je uiteindelijk meer werk en problemen opleveren...
Daarnaast laat strlen(); ook gewoon 6 spaties door of 6 ./$?# e.d.
Zolas ik je al eerder heb aangegeven heb je andere functies om ook de inhoud van de string te controleren. Klein voorbeeldje in php5 / OOP met reguliere expressies.
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
final class validate{
/**
* string
* matches all chars except ASCII (0-31) spaces allowed.
* because spaces are allowed optional minimul length check
*
* @final
* @static
* @access public
* @see http://www.asciitable.com/
* @param string $string
* @param int $min
* @return bool
*/
final static public function string($string, $min=0){
if(self::length(str_replace(' ', '', $string), $min)){
return (bool) preg_match('~^[^\x-\x1F]+$~', $string);
}
return false;
}
/**
* password
* Matches alphanumberic + some chars, no spaces. ASCII (33-126) no spaces
*
* @final
* @static
* @access public
* @see http://www.asciitable.com/
* @param string $string
* @return bool
*/
final static public function password($string){
return (bool) preg_match('~^[\41-\176]+$~', $string);
}
/**
* email
* Match e-mail address by regex.
*
* @final
* @static
* @access public
* @param string $string
* @return bool
*/
final static public function email($string){
return (bool) preg_match('~^[a-z0-9_\.-]+@([a-z0-9]+([\-]+[a-z0-9]+)*\.)+[a-z]{2,7}$~iD', $string);
}
/**
* length
* check if string length is longer then $min.
*
* @static
* @access private
* @param string $string
* @param int $min
* @return bool
*/
static private function length($string, $min=0){
return (strlen((string) $string) > $min) ? true : false;
}
}
?>
final class validate{
/**
* string
* matches all chars except ASCII (0-31) spaces allowed.
* because spaces are allowed optional minimul length check
*
* @final
* @static
* @access public
* @see http://www.asciitable.com/
* @param string $string
* @param int $min
* @return bool
*/
final static public function string($string, $min=0){
if(self::length(str_replace(' ', '', $string), $min)){
return (bool) preg_match('~^[^\x-\x1F]+$~', $string);
}
return false;
}
/**
* password
* Matches alphanumberic + some chars, no spaces. ASCII (33-126) no spaces
*
* @final
* @static
* @access public
* @see http://www.asciitable.com/
* @param string $string
* @return bool
*/
final static public function password($string){
return (bool) preg_match('~^[\41-\176]+$~', $string);
}
/**
* Match e-mail address by regex.
*
* @final
* @static
* @access public
* @param string $string
* @return bool
*/
final static public function email($string){
return (bool) preg_match('~^[a-z0-9_\.-]+@([a-z0-9]+([\-]+[a-z0-9]+)*\.)+[a-z]{2,7}$~iD', $string);
}
/**
* length
* check if string length is longer then $min.
*
* @static
* @access private
* @param string $string
* @param int $min
* @return bool
*/
static private function length($string, $min=0){
return (strlen((string) $string) > $min) ? true : false;
}
}
?>
EDIT:
aan te roepen als:
Code (php)
echo var_dump(); kan weg natuurlijk is alleen om even de uitkomst naar het scherm te spugen....
Gewijzigd op 01/01/1970 01:00:00 door Lode
Zo kan je ze gewoon keer op keer opnieuw gebruiken...
gewoon class includen en hergebruiken...
gewoon class includen en hergebruiken...




