Převod PHP na JavaScript

V případě, že máme nějaké logické funkce v PHP a potřebujeme je zároveň používat na straně klienta, tj. v JavaScriptu, není (polo)automatický převod výrazně komplikovaný.

Proměnné

S proměnnými nemusí být potřeba dělat skoro nic. Pro PHP typické dolary ($promenna) na začátcích názvů se sice nabízí odstranit, nicméně ničemu nevadí. Znak dolaru je platným znakem JS proměnné, koneckonců v proměnné $ je ukryta třeba celá knihovna jQuery.

Jediné, co může vadit, je nekorektní platnost v různých prostorech/rámcích (scope). Zvlášť u cyklů je lepší použít var.

Funkce

Funkce jsou mezi oběma jazyky asi nejpodobnější. Následující kód například funguje v obou jazycích bez úpravy (ukázka).

function pozdrav($text) {
    return ($text);
}

Skládání řetězců

Významný rozdíl je naopak při skládání řetězců:

  • PHP používá tečku.
    echo "Ahoj, " . $promenna;
  • JavaScript znak +.
    alert("Ahoj, " + promenna);

Cykly

Klasický for cyklus od určitého čísla do jiného čísla je skoro identický.

PHP

for ($i = 0; $i <= 10; $i++) {
}

JS

for (var i = 0; i <= 10; i++) {
}

Procházením polem

Cyklus foreach

Klasický cyklus v PHP:

$polozky = array("jedna", "dva", "tri");
foreach ($polozky as $polozka) {
  // $polozka
}

Vypadá v JS následovně (ukázka):

var polozky = ["jedna", "dva", "tri"];
for (var polozka in polozky) {
  // polozky[polozka]
}

Podmínky

Podmínky jsou hodně podobné. Asi největší rozdíl je v tom, že else if se v JavaScriptu píše s mezerou. PHP připouští obě varianty.

if (neco) {
}
else if (necoJineho) {
  // bez mezery to skoční v JS chybou
}
else {
}

Ternární operátor

Funguje v obou jazycích podobně:

var vysledek = (neco == necemuJinemu) ? "ano" : "ne";

Konstanty

Pro PHP konstantu:

<?php
define("KONSTANTA", "hodnota");

Má JS klíčové slovo const:

const KONSTANTA = "hodnota";

Ale funguje až od IE 11 (v IE 10 a starších nikoliv). Ve staré Opeře 12 se potom const ignoruje – hodnotu proměnné lze stále změnit. Ve Firefoxu a Chrome skutečné konstanty fungují.

Kvůli nedostatečné podpoře je proto lepší psát:

var KONSTANTA = "hodnota";

Jelikož JS hledí na velikost písmen v proměnných, tak ani nehrozí kolise. Nebo je řešení si vytvořit objekt:

var konstanty = {
  prvni : "hodnota",
  druha : "dalsi hodnota"
};
// konstanty.prvni;

PHP funkce v JavaScriptu

Spousta PHP funkcí napodobených v JS je na stránce phpjs.org připravena rovnou k použití.

To je všechno. Líbil se vám článek a chcete se dozvědět, až vyjde další?

Sledujte:

 

Připomínky mi pište do komentářů ↓

Offline webová stránka

Offline webová stránka

Jak umožnit návštěvníkům stažení celé webové stránky pro prohlížení offline, umístění na CD apod.

Porovnávání == a ===

Rozdíl mezi == a ===

Rozdíl mezi porovnáváním hodnota pomocí == a ===.

Výpis náhodného obsahu

Výpis náhodného textu

Jak na stránce náhodně vypsat obrázek, odkaz, reklamu, text nebo cokoliv jiného.

Chyby při programování

Jak zobrazit chybové hlášky

Při odstraňování problému v HTML/CSS/JS/PHP/SQL je nutný přístup k chybovým hláškám, jak se k nim dostat?

Generování PDF

Generování PDF

Vytváření PDF dokumentů v JavaScriptu a PHP.

Komentáře