Menu

PHP ou Python: sintaxe, uso na web e qual aprender

PHP foi feito para a web: um arquivo roda a cada requisição e imprime uma página, e ele move o WordPress e o Laravel. Python é uma linguagem de uso geral que também faz web (Django, Flask) e domina ciência de dados, automação e machine learning.

Esta página tem editores executáveis - edite, execute e veja a saída na hora.

PHP e Python são linguagens dinâmicas e interpretadas, mas cresceram para trabalhos diferentes. O PHP foi feito para a web: cada requisição executa um arquivo .php que imprime uma página, e ele move o WordPress e o Laravel. Python é de uso geral: também roda sites (Django, Flask) e é o padrão em ciência de dados, scripts e machine learning. Para um site ou um trabalho com WordPress, PHP é o caminho direto; para quase todo o resto, Python é a escolha mais comum.

O jeito mais rápido de comparar é o mesmo programa nas duas. Aqui está um pequeno script em PHP, que você pode executar:

E o mesmo programa em Python:

scores = {"Ada": 92, "Linus": 78, "Grace": 85}

for name, score in scores.items():
    grade = "pass" if score >= 80 else "retry"
    print(f"{name}: {score} ({grade})")

average = sum(scores.values()) / len(scores)
print(f"Average: {round(average, 1)}")

A lógica é idêntica. As diferenças visíveis são de sintaxe: o PHP marca variáveis com $, termina instruções com ; e usa chaves nos blocos; o Python usa indentação e nenhum símbolo antes do nome.

Sintaxe lado a lado

TarefaPHPPython
Variável$count = 5;count = 5
Juntar strings"Hi " . $name"Hi " + name
Inserir uma variável"Hi $name"f"Hi {name}"
Lista[1, 2, 3][1, 2, 3]
Mapa chave/valor["a" => 1]{"a": 1}
Tamanhocount($list), strlen($s)len(list), len(s)
Percorrer um mapaforeach ($m as $k => $v)for k, v in m.items():
Funçãofunction add($a, $b) { return $a + $b; }def add(a, b): return a + b
Função anônimafn($x) => $x * 2lambda x: x * 2
Valor padrão para chave ausente$m["k"] ?? "default"m.get("k", "default")
Igualdade estrita===== (sem conversão de tipos)

Arrays: um tipo no PHP, lists e dicts no Python

O Python separa lists, dicts, tuples e sets. O PHP tem um único tipo de array, um mapa ordenado, que faz todos esses papéis. As chaves podem ser inteiros ou strings, e a ordem de inserção é mantida:

A versão em Python precisa de dois tipos diferentes:

colors = ["red", "green", "blue"]
codes = {"red": "#f00", "blue": "#00f"}

colors.append("yellow")
codes["green"] = "#0f0"

print("blue" in colors)
print("red" in codes)

O tipo único do PHP é prático, mas traz uma surpresa que o Python não tem: funções como array_filter mantêm as chaves originais, então uma lista filtrada pode ficar com buracos (0, 2, 3). Envolva o resultado em array_values() para renumerar.

Tipos e conversão automática

As duas linguagens têm tipagem dinâmica, e as duas aceitam type hints. A grande diferença é o que acontece quando tipos se misturam. O Python se recusa a somar uma string e um número; o PHP converte strings numéricas para você:

print("10" + 5)   # TypeError: can only concatenate str (not "int") to str
print(7 / 2)      # 3.5
print(7 // 2)     # 3

O PHP 8 deixou as comparações entre strings e números muito mais sensatas, mas o hábito a criar é o mesmo: use === no PHP, a menos que você queira conversão. Com declare(strict_types=1); no topo de um arquivo, o PHP também rejeita tipos escalares errados passados para parâmetros tipados de funções, o que o aproxima do comportamento dos verificadores de tipo do Python.

Desenvolvimento web

É aqui que as duas mais diferem. Um arquivo PHP já é uma página web: coloque-o num servidor e cada requisição o executa do início, com os dados do formulário já em $_GET e $_POST. Execute este bloco, digite uma cidade e clique em Send: o script roda de novo com $_POST preenchido.

O Python precisa de um framework e de um servidor de aplicação rodando para a mesma página. Uma versão mínima em Flask:

from flask import Flask, request
from markupsafe import escape

app = Flask(__name__)

@app.route("/", methods=["GET", "POST"])
def home():
    city = request.form.get("city", "").strip()
    page = '<form method="post"><input name="city"><button>Send</button></form>'
    if city:
        page += f"<p>Weather lookup for <strong>{escape(city)}</strong></p>"
    return page

Nenhum dos modelos é melhor em geral. O "uma requisição, uma execução nova" do PHP é simples de publicar e difícil de quebrar: uma falha afeta uma requisição, e a memória é liberada depois de cada página. O processo de longa duração do Python pode manter coisas na memória entre requisições e combina com websockets e trabalho em segundo plano, mas exige mais configuração. Os frameworks completos (Laravel e Symfony no PHP, Django no Python) acabam oferecendo recursos parecidos: rotas, ORM, templates, autenticação, filas.

Desempenho

Em páginas web, o PHP 8 com OPcache costuma ser mais rápido que o CPython para executar código simples, e o PHP 8 também traz um compilador JIT. Na prática, os dois passam a maior parte de uma requisição esperando o banco de dados ou outros serviços, então a diferença raramente decide um projeto. No Python a história da velocidade é outra: o trabalho numérico pesado fica com bibliotecas como NumPy e pandas, cujo núcleo é escrito em C, e é por isso que o Python lidera em dados apesar de um interpretador mais lento.

Onde cada uma é usada

PHP é mais forte emPython é mais forte em
Sites, temas e plugins WordPressAnálise de dados (pandas, Jupyter)
Apps web com Laravel e SymfonyMachine learning e IA (PyTorch, scikit-learn)
Lojas: WooCommerce, Magento, ShopwareAutomação e scripts
Hospedagem compartilhada barata, agências, sites freelanceComputação científica, ensino
Páginas renderizadas no servidor e APIsBack-ends web com Django, Flask, FastAPI

O mercado de trabalho reflete isso. Vagas de PHP são principalmente de desenvolvimento web, muitas vezes com WordPress ou Laravel. Vagas de Python cobrem web, dados, DevOps e ML, então existem mais delas.

Qual aprender primeiro

Escolha pelo que você quer construir nos próximos meses:

  • Você quer criar sites, trabalhar como freelancer ou com WordPress: aprenda PHP. Você terá uma página no ar rapidamente, e as habilidades se aplicam direto a trabalho pago. Comece por o que é PHP e variáveis.
  • Você quer análise de dados, automação, IA ou uma primeira linguagem de uso geral: aprenda Python.
  • Você quer criar apps web modernos de ponta a ponta: qualquer uma serve para o back-end, e você vai precisar de JavaScript no navegador de qualquer jeito; veja PHP ou JavaScript.

Quase tudo o que você aprende se transfere. Loops, funções, arrays e mapas, classes e exceções funcionam quase do mesmo jeito nas duas, então a segunda linguagem leva semanas, não meses.

Perguntas frequentes

PHP é mais rápido que Python?

Em requisições web típicas, o PHP 8 costuma ser mais rápido que o CPython, graças ao OPcache e a um motor rápido, mas os dois são rápidos o bastante para que o banco de dados e a rede decidam a maior parte do tempo de resposta. Para cálculo pesado, o Python normalmente passa o trabalho para bibliotecas escritas em C, como o NumPy.

Devo aprender PHP ou Python primeiro?

Aprenda Python primeiro se você quer programação em geral, análise de dados, automação ou machine learning. Aprenda PHP primeiro se o seu objetivo são sites, trabalho com WordPress ou apps Laravel, porque você consegue criar e publicar uma página funcionando em quase qualquer hospedagem.

Python pode substituir o PHP no desenvolvimento web?

Sim, Django, Flask e FastAPI criam os mesmos tipos de sites e APIs. A diferença está no deploy e no ecossistema: o PHP roda em quase toda hospedagem compartilhada e tem o WordPress, enquanto apps web em Python normalmente rodam como um servidor de aplicação de longa duração atrás de um proxy.

Qual o equivalente PHP de um dicionário Python?

Um array associativo: $user = ['name' => 'Ada', 'age' => 36]; e $user['name']. Arrays em PHP são mapas ordenados, então o mesmo tipo faz o papel de list e de dict do Python.

Ilustração das linguagens de programação do Coddy

Aprenda a programar com o Coddy

COMEÇAR