<!doctype html>
<html>
<head>
<title>index.php</title>
</head>
<body>
</body>
</html>
<h1>This is PHP!</h1>
<?php
echo '<h1>This is also PHP!</h1>'
?>
<h1> <?php echo "This is also PHP!" ?> </h1>
Allting utanför <?php ?> tolkas som HTML
Allting innanför <?php ?> tolkas som PHP
Om din fil innehåller PHP behöver du inte en sluttagg
Om din fil innehåller både PHP och HTML måste du använda sluttagg
Du behöver inte skriva ut php
<? ?> == <?php ?>
Men det är att föredra, failsafe.
Använd alltid semikolon;
Liknande JavaScript har vi bara en typ av variabel var
Vi behöver dock inte skriva var
men vi måste skriva $
<?php
$name = 'Jesper';
$money = 30;
echo $name;
echo $money;
<?php
$money = '30'; //type: string
$cash = (int)$money; //type: int
(int), (integer)
- cast to integer(bool), (boolean)
- cast to boolean(float), (double), (real)
- cast to float(string)
- cast to string(array)
- cast to array(object)
- cast to object(unset)
cast to NULL<?php
$foo = 1 + "Whaddup10"; // $foo is 1 (int)
$foo = 1 + "10Waddups"; // $foo is 11 (int)
$foo = 1 + "10.5Waddups"; // $foo is 11.5 (float)
$foo = "10.5Waddups" + 1; // $foo is 11.5 (float)
Strängar castas till float/int om första karaktären är en siffra annars ignoreras strängen.
Ref: PHP.net: String conversionIt's all the same to me
<?php
$foo = 10; // $foo is an integer
$str = "$foo"; // $str is a string
$fst = (string) $foo; // $fst is also a string
<?php
$first = 'Jesper';
$last = 'Orb';
$full = $first . $last;
$fullWithBraces = "{$first} {$last}";
Strängar sätts ihop med . istället för + som i JS
Single & double quotes matter
<?php
$first = "Jesper";
$last = "Orb";
$full = "$first $last"; //It works
$fullWithDouble = "{$first} {$last}"; //It works
$fullWithSingle = '{$first} {$last}'; //Does not work
JavaScript: console.log();
PHP: var_dump();
Om inget syns, lägg till detta i början på filen
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
Ref: SO - How To Display Errors
<?php
$name = 'Jesper';
var_dump($name); //Jesper
Man kan också döda hela processen
<?php
$name = 'Jesper';
die(var_dump($name)); //Jesper
All kod slutar köras efter die();
Ibland jobbar man med mycket data.
<?php
$huge = 100000000000000;
die(var_dump($huge)); //I just took a huge dump and died :O
En del skillnader, samma tänk
<?php
$array = array(); //Empty array
$array2 = array("first index", "second index"); //With values
Ref: PHP.net - Arrays
Vi använder troligtvis PHP 7.0/7.1
Lite som med ES6, oftast OK att använda men kan ställa till på äldre servrar.
<?php
$array = []; //Empty array
$array2 = ["first index", "second index"]; //With values
Ref: PHP.net - Arrays
<?php
$array = array("koala", "elephant");
array_push($array, "sloth"); // array_push(array, item);
<?php
$array = ["koala", "elephant"];
$array[] = "sloth";
PHPs svar på JS Object
<?php
$assoc = array(
"key" => "value"
);
<?php
$person = array(
"name" => "Jesper",
"age" => "Infinite"
);
Separeras med => istället för :
Ref: ArraysProgrammering som programmering
Väl använd for-loop
<?php
$animals = array("Sloth", "Panda");
foreach($animals as $animal){
echo $animal;
}
<?php
$panda = array(
"name" => "Panda",
"weight" => "3000"
);
foreach($panda as $key => $value){
echo $key . $value;
}
Vi kan använda oss utav både key och value om vi vill.
samt Alternative syntax
<?php
function foo(){
echo "Foo!";
}
<?php
function foo(){
echo "Foo!"; //public broadcasting
}
<?php
function foo(){
return "Foo!"; //just returns
}
echo SKRIKER UT DET. return returnerar bara tyst.
PHP utgår alltid ifrån att variablerna är lokala till scopet.
Vi har bara function scope
let foo = 42;
function bar(){
console.log(foo); //42
}
Allting i det yttre scopet finns i det inre
<?php
$foo = 42;
function bar(){
echo $foo; //No, nein, nothing
}
Variabler finns enbart i det scope de är deklarerade i.
<?php
$foo = 42;
function bar(){
global $foo;
echo $foo; //42
}
Alternativt referera till den globala variabeln. Oftast en dålig idé.
Göra sig bekväm med språket