Avatar billede Asky Forsker
13. september 2023 - 10:59 Der er 14 kommentarer og
1 løsning

Anførselstegn

I min erfaring med PHP programmering har det længe undret mig hvornår man bruger den ene form for anførselstegn "  " og den anden '  '
fx $subject = ($_POST['subject']);  i definitionen
og $mail->setFrom('info@domæne.dk', 'Firma');

men i en tekststreng er det ".$subject."
og et password $mail->Password  = "xxxxxxxx";   

$mail->Subject = 'Bestilling'; denne virker
$mail->Subject = "Bestilling"; denne virker ikke

er der en forklaring?
Avatar billede arne_v Ekspert
13. september 2023 - 12:58 #1
Tekst inden i '' tages bare som den er. Tekst inden i "" laves der erstatninger på.

Prøv og sammenlign:

$a = 'A';
$b = 'B';
echo '$a\r\n$b';

med:

$a = 'A';
$b = 'B';
echo "$a\r\n$b";
Avatar billede arne_v Ekspert
13. september 2023 - 12:59 #2
$mail->Subject = 'Bestilling'; denne virker
$mail->Subject = "Bestilling"; denne virker ikke


virker mystisk - begge bør virke - der er ikke nogen specielle direktiver.
Avatar billede Asky Forsker
13. september 2023 - 14:55 #3
Det med $mail er måske pga en anden fejl i kodningen, men da jeg lavede enkelt anførselstegn, virkede det ihvertfald. Jeg har lige opdateret webhotellet fra PHP 5,6 til 7,4. Det er vel der de første begynderfejl er rettet. otteren er vel ldt for ny endnu?
Avatar billede arne_v Ekspert
13. september 2023 - 15:12 #4
Første version 8 kom ud for 3 år siden.

7.4 er allerede end of life med hensyn til support.

Jeg vil sige at man bør satse på 8 idag.
Avatar billede bvirk Guru
13. september 2023 - 15:14 #5
https://en.wikipedia.org/wiki/PHP
'PHP 8 was released on 26 November 2020'
Alt under 8.1 er noget gammelt skidt! Hvilken grund er der til at anvende gamle versioner? Der udvikles mod forbedringer og nye muligheder.

Det er lidt smagssag om man vil anvende enkelt eller dobbelt citationstegn de steder hvor hvor man har valget.

Jeg anvender enkelt med mindre jeg har brug for dobbelt, som når indholdet af strengen skal underkastes interpolation (variabel substition)
Avatar billede arne_v Ekspert
13. september 2023 - 15:24 #6
Jeg anvender enkelt med mindre jeg har brug for dobbelt, som når indholdet af strengen skal underkastes interpolation (variabel substition)


Det er også min hovedregel. Det minimerer risikoen for utilsigtede erstatninger.

Men folk har forskellig stil.
Avatar billede ejvindh Ekspert
13. september 2023 - 16:50 #7
En mulig grund til bøvlet kan være, hvis man andre steder i koden har noget bøvl omkring ulukkede eller forkerte anførselstegn, som du havde i den forrige tråd:

https://www.computerworld.dk/eksperten/spm/1042467

Jeg siger ikke, at den gamle kode ville give det udslag du har nu, men jeg tror måske du kunne have gavn af at se på, om alle anførselstegn bliver korrekt åbnet og lukket. Det er næsten den eneste mulighed jeg kan se for den forskel, som du nævner i #0
Avatar billede bvirk Guru
13. september 2023 - 17:31 #8
I tillæg til #7 er det et must at have en editor som tydeligt viser syntaks fejl
Det gør https://code.visualstudio.com/ med php extension i tillæg til 'intelligens' der har popups med argumenter til php funktioner og dropdown valg udfra indledende bogstaver på såvel egne som phps indbyggede funktioner.
Banale småfejl som manglende semicolon, manglende $ foran variabel, ukendt (forkert stavet) variable i udtryk optræder med røde bølgestreger. En ikke senere refereret variabel er i nedtonet kulør - endnu en lille tip om en mulig tanketorsk.

Alt i alt en hurtigere og sjovere cyklus til at nå det man vil.
Avatar billede Asky Forsker
13. september 2023 - 20:03 #9
Tak for indlæggene. Det har virkelig gjort mig klogere. Jeg har sat #5 som løsning, da det ligesom er humlen af mit spørgsmål.
Til bvirk: Jeg har i de sidste 10 år eller mere brugt Notepad ++ (fordi det er gratis).
Nu vil jeg prøve visualstudio. Efter din beskrivelse er den endnu bedre ;-)
Avatar billede arne_v Ekspert
13. september 2023 - 20:15 #10
Visual Studio Code (ikke at forveksle med Vistual Studio) kan rigtigt meget.

Det er vistnok den mest udbredte IDE idag.

Den er ikke lige min smag, men det skal man ikke lægge så meget i.
Avatar billede bvirk Guru
13. september 2023 - 20:24 #11
Bruger du stadig jEdit Arne?
Avatar billede arne_v Ekspert
13. september 2023 - 20:38 #12
Til HTML og nem kode (altså noget kode hvor jeg kender både sprog og relevante funktioner godt) uanset sprog bruger jeg typisk JEdit. Uanset om det er Windows eller Linux.

Til lidt mere tricky kode bruger jeg typisk en fuld IDE. For Java, Kotlin, PHP m.fl. er det Eclipse. For C# og VB.NET er det enten SharpDevelop (hvis det bygger med .NET 4.5) eller Visual Studio (hvis det kræver en nyere .NET).

For noget der skal bygges på VMS bruger jeg EVE med en heftig tilretning (ca. 2000 linier). Det er en tekst baseret editor hvor man skriver extensions i et Pascal lignende sprog.
Avatar billede bvirk Guru
13. september 2023 - 23:49 #13
Jeg holdt så meget af jEdit's udbygbarhed med beanshell makroer og egne 'libraries' i ~/.jedit/startup at jeg aldrig fik prøvet andre IDE før lidt for megen læsning på twitter lokkede mig i favnen på vs code.
En gang lavede jeg også makroer multiplatforme, men det interesserer mig ikke længere - https://en.wikipedia.org/wiki/AkelPad er alt hvad 20 år gamle XP trukket af en enlige 1 ghtz atom kerne får at gøre med.
Avatar billede bvirk Guru
14. september 2023 - 00:26 #14
#9 : Der er en hel web industri bag dit kontra dat - blot et enkelt hit:

https://www.reddit.com/r/AskProgramming/comments/rmextf/vs_code_and_notepad/

Jeg vil mene det er besværet værd at sætte sig ind i vscode. Også fordi den kan en masse andet - javascript (jsNode) og markdown er to ting jeg anvender. Den kan vise billeder og man kan trække link dertil ind en markdown fil. Der kommer en ny feature list hver måned og den så omfattende at jeg ikke har tid til at læse det.

I vscode installerer man extension som udbygger med ekstra features. Der er ofte flere forskellige extensions, nogle bedre end andre, til gængse udvidelser. Den jeg anvender til php hedder:
'PHP Intelephense' 

Desuden har jeg en extension som hedder 'Live Sass Compiler' som gør det muligt at skrive css på en hierakisk måde ( https://sass-lang.com/ ) - vscode omdanner en .scss fil automatisk til en ligedan navngivet browser forståelig .css fil
Avatar billede bvirk Guru
14. september 2023 - 00:40 #15
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester