20. februar 2010 - 09:34
Der er
11 kommentarer og 2 løsninger
If sætning i en klasse
Hej Eksperter, Jeg har følgende kode, hvor jeg gerne vil indsætte en IF sætning, men får desværre fejl. var $tbFields = array( 'userID'=> 'user_id', if (1 = 1) { 'login' => 'email', } else { 'login' => 'phone', } ); Får fejlen: syntax error, unexpected T_IF, expecting ')' Skal IF sætningen skrives anderledes når den ikke er i en funktion, i en klasse?
Annonceindlæg fra HP
20. februar 2010 - 09:42
#1
if (1 = 1) { $banan = 'email'; } else { $banan = 'phone'; } var $tbFields = array( 'userID'=> 'user_id', 'login' => $banan );
20. februar 2010 - 09:43
#2
Eller var $tbFields = array( 'userID'=> 'user_id', 'login' => 1==1 ? 'email' : 'phone' );
20. februar 2010 - 09:55
#3
#1 Får fejlen syntax error, unexpected T_IF, expecting T_FUNCTION in #2 Får fejlen syntax error, unexpected T_IS_EQUAL, expecting ')' in Vi er i en klassefil.
20. februar 2010 - 09:56
#4
Det er meningen jeg vil lave følgende tjek: 'login' => is_int($_POST['email']) ? 'email' : 'phone', Så hvis det er int så vælger den phone, og ellers email.
20. februar 2010 - 10:02
#5
Ja, men, hvad er præcis den kode, hvor den siger fejl?
20. februar 2010 - 10:04
#6
(og så vil du senere opdage, at is_int ikke kan bruges her. Alt hvad der kommer fra $_POST er strenge)
20. februar 2010 - 10:07
#7
Det er de linier som du har skrevet ovenover. syntax error, unexpected T_IF, expecting T_FUNCTION i Linie: if (1 = 1) { syntax error, unexpected T_IS_EQUAL, expecting ')' in Linie: 'login' => 1==1 ? 'email' : 'phone Okay. Hvordan laver jeg et tjek, der ser om der er et @ i strengen?
20. februar 2010 - 10:08
#8
Ja, men, hvad er præcis den kode, hvor den siger fejl?
20. februar 2010 - 10:10
#9
Ok, i det første tilfælde er det fordi man ikke skriver (1 = 1) men (1 == 1) - jeg fik kopieret det fra din kode. I det andet tilfælde vil jeg gerne se hele koden.
20. februar 2010 - 10:34
#10
1 == 1 giver samme fejl. Koden er pæn lang, men starter således: class flexibleAccess{ var $dbName = XX if (1 == 1) { $banan = 'email'; } else { $banan = 'phone'; } var $tbFields = array( 'userID'=> 'user_id', 'login' => 'phone' ); function flexibleAccess($dbConn = '', $settings = '') .......
20. februar 2010 - 10:55
#11
Det er jo næppe den præcise kode, du anvender. Men som det står her mangler der et semikolon i linien før if (1==1). Det er så ikke fejlen, ganske vist. Men man kan jo ikke have sætninger i erklæringsdelene. Det kan man i metoder, herunder constructoren. Erklær dine variabler: var $dbName; var $tbFields; og put værdier i dem i klassens constructor, hvor du også kan have en if-sætning.
20. februar 2010 - 16:08
#12
som eric skriver, så kan du ikke have en if-sætning i en klasse, som ikke er placeret i en konstruktor eller function
20. februar 2010 - 16:10
#13
og det gælder ikke kun if-sætninger.
Vi tilbyder markedets bedste kurser inden for webudvikling