I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
du kan se at det gælder ikke alene i echo strengen men også i den første betingelsessætning. Hvis jeg her bruger anførselstegn omkring feltnavnene (begge steder, men selvfølgelig enkelt-anførselstegn i echo sætningen), fungerer det ikke.
anførselstegn om den sekvens a tegn der skal identificeres som 'en streng' er det korrekte.
men i gammel php ville man 'hjælpe brugerne' med den meget almindelige fejl at de glemte dem, så siden man kunn lave en logisk sekvens "navn står ikke i navntabellen så det er ikke en konstant" -> "så er det nok en streng" og sætte anførselstegnene selv, besluttede de at tillade at anførselstegne blev udeladt der. (ligesom IE der tillader næsten hvadsomhelst og så prøver at gætte hvad brugeren mener i hver situation)
Den filosofi er komme noget i miskredit efterhånde (jo det hjælper da nybegynderen lidt, men gør det samtidig nærmest umuligt for ham at lære af sine erfaringer) så nu vil php gerne væk fra det.
så hvor du før kunne skrive echo "streng med et $array[opslag] indeni"; bør du nu bruge den korrekte syntaks for indlejrede komplexe variabler, dvs sætte en tuborg-parentes omkring variablen for at indikere at her er en indlejret variabel ser skal udrenes og derefter indsættes i strengen: echo "streng med et {$array["opslag"]} indeni"; siden variablen bliver udregnet først kan du bruge hvad tegn du vil indi {} uden at komme i konflikt med reglerne for anførselstegn i strenge.
He He, i dit eksempel laver du vist samme fejl i javascript, der kommer til at stå: <a href="java script:openAbstract(art_id_bogstaver);" title="Abstract">[a]</a>
og der burde altså være anførselstegn om din streng 'art_id_bogstaver', men akkeja, IE tillader det.
jakoba> det du skriver lyder som om at servere med "gammel php" burde torerere BÅDE feltnavne med og uden anførselstegn, så det burde ikke give problemer med:
$array["opslag"]
men det gør det faktisk på denne server. den vil kun have $array[opslag]
indeni en streng kan $array["opslag"] ikke bruges uden noget til at fortælle at de "-tegn relaterer til variablen og ikke til strengen (der forventer at skulle ende ved første "-tegn den ser) echo "streng med et $array["opslag"] indeni"; //bliver læst som: echo "streng med et $array[" // med en syntaksfejl bagefter. så det kan selv gamle servere ikke hitte ud af.
Og nye php-versioner tillader da stadig den gamle $array[opslag] men det giver en varning, og (mere betydningsfuldt) om et par versioner holder de op med at tillade det overhovedet.
1.3 ligner et tal, så hvis du bruger det som et tal indenini funktionen skal der IKKE anførselstegn omkring. (jeg gik ud fra at det var værdien fra en id='noget' attrubut)
jakoba> 1) det er klart at indeni en streng med " omrking går det ikke at sætte " omkring feltnavne i et array. 2) ja javascript opfatter det nok som tal. Det er faktisk en streng fra databasen hvor det har typen VARCHAR. Men det er jo ligegyldt for javascript, og det er nok derfor der ikke bliver problemer.
Det med tuborg lyder OK. Dog må det nemt kunne give fejl at et $ (variabeltegn) SKAL følge umiddelbart efter { - Man er nemt i vane med at se stort på blanktegn.
i din betingelse står array-opslaget jo ikke som en del af en streng. så der er {} helt ubegrundet (og bliver formodentlig forvekslet med {} i betydningen sætningsblok-begynd og sætningsblok-slut)
du bruger anførselstegn helt normalt når variabelen ikke er indlejret i en streng. if ( $arrayInfoArts['type']=="Invited paper" || $arrayInfoArts["type"]=="Papers" ){ echo "{$arrayInfoArts["forfatter"]}, “{$arrayInfoArts["titel"]}”</a>";
ok, så kompleks syntaks er kun relevant inden i strenge - jeg er med. men her hvor serveren ikke vil have anførselstegn omkring feltnavne der ikke er del af en streng, bliver det bare mere indviklet at skrive det anderledes inden i strengene. Jeg tror det er specielt for denne server som måske har en meget "gammel php". Men for andre opgaver er det godt at vide hvad der er "rigitgt".
Det helt basale alternativ er slet ikke at benytte sig af php's "du kan indlejre variabelværdier i en streng" og istedet sætte strengen sammen af stumper med . operator imellem.
mine blanktegn efter ( og før ) er blot for overskuelighed, så det er nemmere at tælle start og slut for at sikre der er lige mange.
Det var en sær server. Jeg kan ikke give nogen forklaring på hvorfor nogen skulle ønske at sætte den så tåbeligt op (eller hvordan de gjorde det). Hvad siger php_info() ?
det med at indlejre variabelværdier i tekststrenge er nu en meget smart ting ved php. Og det er jo konsekvent nok hvis man bare veksler mellem " og ' i strenge. F.eks.:
if ($arrayInfoArts['type']=="Invited paper" || $arrayInfoArts['type']=="Papers"){ echo "$arrayInfoArts['forfatter'], “$arrayInfoArts['titel']”</a>";
kan det være at den kode du skriver på en eller anden måde bliver set af php som en streng. Det kunne det fx bliver hvis du benytter et macrosystem af en art, eller gemmer php koden i en database.
jakoba 13/11-2003 15:21:00> næ, jeg gør hverken det ene eller det andet, og der er heller ikke tale om foruddefinerede konstanter eller variabler (sådan som dit link nævner). Det MÅ simpelthen være noget med denne specielle server, for jeg har heller ikke været ude for det før på andre servere hvor jeg har benyttet samme kode.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.