Памятка: различие синтаксиса языков

Знаки конкантенации

php  .
js  +
pug/jade +

Переменные

php $variable =
js

var variable

var ставится при объявлении переменной, при перезаписывании пишется только имя переменной

pug/jade -var variable =
scss $variable =
css :root { --body-background: #ccc; }

Интерполяция

Interpolation

php pug/jade sass/scss css
<?php

$capital = "Paris";

echo "The capital of France is".$capital."<br />";

?>

 

Новый синтаксис pug2

- var capital = "Paris"

p The capital of France is ${capital}

Устаревший синтаксис jade/pug

- var capital = "Paris"

p The capital of France is #{capital}

 

$color: "black";

background: $color;

or

background: #{$color};

 

body {
  background-color: var(--body-background);
}

 

<?php

$capital = "Paris";

echo "The capital of France is $capital <br />";

?>

С одинарными кавычками интерполяции не произойдет. 

   
/* Если --my-var не определено используется следующий параметр */

.two {
  color: var(--my-var, red); 
}
<?php

$text = "news";

echo "Where's the {$text}paper <br />";

?>
   
/* Переменных может быть несколько */

.three {
  background-color: var(--my-var, --my-background, pink); 
}

Комментарии

   Многострочные  Однострочные
css   /* */  
js     /* */     //
html    <!-- -->  
php   /* */    //
modx [[- ]]  
fenom

{ignore}{/ignore}

{**}

 
pug/jade

(задается отступом)

// 
    Example

 

// example

 

//- не компилируемые

Экранизация

js \
pug/jade \

Арифметические операторы

  php
Сложение +
Вычитание -
Умножение *
Деление /

Целочисленный остаток от деления $a на $b

%
Сокращенная запись арифметического действия с присвоением (оператор=)  +=

Операторы сравнения

  php js SQL
Больше чем  (Greater than)  > > > ('раньше', для строковых значений)
Меньше чем (Less than) < < ('позже', для строковых значений)
Меньше чем или равно (Less than or equal to) <= <= <=
Больше чем или равно (Greater than or equal to​) >= >= >=
Равно (Equal to) ==  == LIKE
Не равно (Not equal to) !=  != NOT LIKE
Сравнение на соостветствие типа. Равно === === =
Сравнение на соостветствие типа. Не равно !== !== !=
+1 ++ ++  
-1   --  

 Логические операторы

  js SQL  php
и && AND  &&
или || OR  ||
не   NOT ! ()
Взаимоисключающее или      ^

 

Ссылки на значения переменной

php  

<?php

$apples = 5;

$fruit = "apples";

echo "Число яблок - ", $$fruit;

?>

 

<?php

echo "Число яблок - ${$fruit}";

?>

 

Условия if, else (If , else statements)

  php js jade
Единичное условие
if ($x=="Условие") {

  echo "результат 1";

} elseif (условие2) {  

  echo "результат2";        

} else {

  echo "результат 3";

}

 

if ($x=="Условие") {

  console.log('результат 1');

} else if ($x=='условие2') {

 console.log('результат2');

} else {

  console.log('результат 3');

}

 

 
Множественное условие
if ($i == 1 ||
    $i == 2 ||
    $i == 3) {

echo '$i is somewhere between 1 and 3.';

}

 

if ($i == 1 ||
    $i == 2 ||
    $i == 3) {

console.log('$i is somewhere between 1 and 3.');

} 

 

 
Сокращенная запись
expression? value_true : value_false
   

Условие switch ​ (switch statements)

используется при повторении цикла, когда слишком много условий if/else с одинаковыми ключами

  php js
Единичное условие
$num=2;

switch ($num) {
        case 0:
            echo 'The value is 0';
            break;
        case 1:
            echo 'The value is 1';
            break;
        case 2:
            echo 'The value is 2';
            break;
        default:
            echo "The value isn't 0, 1 or 2";
    }

 

var num= 'A';

switch (num) {
  case 'A':
    console.log('The value is A');
    break;
  case 'B':
    console.log('The value is B');
    break;
  case '':
    console.log('The value is C');
    break;  
  default:
    console.log('The value isn't A, B or C');
    break;
}

 

Множественное условие
case 1:
case 2:
case 3:
     echo '$i is somewhere between 1 and 3.';
     break;

 

 
Альтернативный синтаксис
switch ($i):
endswitch;

 

 

Массивы (arrays)

  php js sass/scss pug/jade
Обычный массив
$array = array("первое значение", 
               "второе значение", 
               "третье значение");

echo array[x]; 

/* Допускается 
   использование 
   фигурных скобок */

 

var arrayList= [
        'первое значение', 
        'второе значение', 
        'третье значение'
];

/* Вызов */
arrayList

/*Вызов с параметром */
arrayList[1]

 

 

-var items = [1,2,3,4,5]

 

Ассоциативный массив
$assocArray = array(

'year'=>2012,
'colour' => 'blue',
'doors' => 5

);

 

 
$map: (key1: value1, key2: value2, key3: value3);
-
  var assocArray = [
  {'key':'value'},
  {'key2':'value2'}]

 

Многомерные массивы
$deck = array(
              array('2 of Diamonds', 2),
                      array('5 of Diamonds', 5),
                      array('7 of Diamonds', 7),
                      array('7 of Diamonds', 7));

 

   
-
  var multiArr = [
  {'type':{'key':'value'}},
  {'type2':{key2':'value2'}},]

 

Длинна массива
$numbers=array(1,2,3,4,5);
count($numbers)

 

var numbers = [1,2,3,4,5];
numbers.length

 

   

Миксины (mixins)

  jade/pug scss
Обычный вызов
/* определение */

mixin name
  .block
     ...

/* Вызов */

+name

 

/* определение */

@mixin name {
  .block{
    ...
  }
}

/* Вызов */

@include name;

 

Вызов с параметром
/* определение */

mixin name($param1,$param2)
  .block #{param1}, #{param2}
     ...

/* Вызов */

+name('значение параметра 1', 'значение параметра 2')

 

/* определение */

@mixin name($param1, $param2) {
  .block{
    background: $param1;
    color: $param2;
    ...
  }
}

/* Вызов */

@include name(white, black);

 

Вызов с неограниченным множеством параметров
/* определение */

mixin name(...params)
  .block 
    each param in params
      li= #{param}
       ...

/* Вызов */

+name('значение параметра 1', 'значение параметра 2')

 

/* определение */

@mixin name($params...) {
  .block{
     box-shadow: $params;
    ...
  }
}

/* Вызов */

@include name(0px 4px 5px #666, 2px 6px 10px #999);

 

Цикл for (for loop)

хорош при повторении цикла, при условии что известно сколько раз его надо будет повторить

    Изменение шага
php
for ($i = 0; $i < 10; $i++) {
    echo $i;
}
for ($i = 0; $i < 11; $i = $i + 5) {
    echo $i;
}
js
for ($i = 0; $i < 10; $i++) {
    $i;
}
 
pug / jade
-for(i=0; i<5; i++)
     p $i
 
sass / scss
@for $i from 1 through 12 {
  // тело цикла. Переменная в теле - #{$i}
}

 

 

Цикл foreach (foreach loop)

вывод for для массива

  php  
 
$numbers = array(1, 2, 3);

foreach($numbers as $item) {
      echo $item;
}

 

 
     

Цикл while (while loop)

(Проверка до итерации) При условии неизвестности количества раз повторения цикла 

  php js
 
while(cond) {
   // looped statements go here
}
while(cond) {
   // looped statements go here
}
Добавление переменной во избежании бесконечного цикла
$loopCond = true;
while ($loopCond == true){
        $loopCond = false;
}

 

 
Альтернативный синтаксис
while(cond):
   // looped statements go here
endwhile;

 

 
Пример использования
$headCount = 0;
    $flipCount = 0;
    while ($headCount < 3) {
        $flip = rand(0,1);
        $flipCount ++;
        if ($flip){
            $headCount ++;
            echo "<div class=\"coin\">H</div>";
        }
        else {
            $headCount = 0;
            echo "<div class=\"coin\">T</div>";
        }
    }
    echo "<p>It took {$flipCount} flips!</p>";

 

 
     

Цикл Do-While (do-while loop)

(Проверка после итерации)

  php  
 
$var = false;

do{
   echo $var;
}while($var);

 

 
Пример использования
$flipCount = 0;
    do {
        $flip = rand(0,1);
        $flipCount ++;
        if ($flip){
            echo "<div class=\"coin\">H</div>";
        }
        else {
            echo "<div class=\"coin\">T</div>";
        }
    } while ($flip);
    $verb = "were";
    $last = "flips";
    if ($flipCount == 1) {
        $verb = "was";
        $last = "flip";
    }
    echo "<p>There {$verb} {$flipCount} {$last}!</p>";
 

Функции

  Определение  
php
function name(parameters) {
  statement;
}

name(parameters);
 
js
function name(parameters) {
  statement;
}

name(parameters);
 
scss/sass
@function name($param, $param2) {
  $value: 1;
  @return $value;
}

name(1,2)

 

 

Объекты

Говоря объекты подразумевают свойства, атрибуты или поля. Объект = новый экземпляр класса.

Говоря методы подразумевают функции. Class = объект

  php  
Создание класса
class Classname { }
 
Экземпляры класса
$obj1 = new Classname();
 
Вызов метода
public function Name(){}

 

 
статичный объект или метод static  
константа const