Hello World em PHP

Livrando-me da maldição

Sintaxe

Definir Código

Para demarcar o código php em seu html, use

          
          <?php // Código aqui ?>
          
        

Como criar um Hello World?

          
            <?php
              echo "Hello World! \u{1F30E}";
            ?>
          
        

Resultado:

Hello World! 🌎

Livrai-me da maldição!

Comentar em PHP

Para comentar em php, basta usar // ou # para comentários de linha, e /**/ para comentários de bloco

          
            // Comentário de linha 1
            # Comentário de linha 2
            /*
            Comentário
            em
            bloco
            */
          
        

Concatenar strings em PHP

No js é comum utilizarmos "a" + "b" para concatenar a e b. porém em PHP utilizamos "a" . "b" para concatenar a e b, observe:

          
            <?php
              echo "A" . "B";
            ?>
          
        

Resultado:

AB

Livrai-me da maldição!

Variáveis e Constantes

Usa-se $ para declarar variáveis e const NOME_VARIAVEL para constantes

          
            <?php
              $variavel = "variavel";
              const CONSTANTE = "CONSTANTE";
              echo "Eu sou $variavel e eu sou " . CONSTANTE;
            ?>
          
        

Observe que é necessário usar o operador . de concatenação

Resultado:

Eu sou variavel e eu sou CONSTANTE

Curiosidades sobre Variáveis em PHP

Observe o código abaixo:

          
            $xablau = "xablauzin";
            $$xablau = "Opa beleza?";
            echo "$xablauzin";
          
        

Resultado:

Opa beleza?

Perceba que o PHP interpreta o valor de $xablau e nomeia a variável e só depois atribui o valor a variável nomeada com o conteúdo de $xablau.

Case-Sensitive?

PHP é case-sensitive nas suas variávels, porém não é case-sensitive nos seus comandos, observe:

          
            <?php
              $numero = 1;
              $Numero = 2;
              $NUMERO = 3;
              echo "$numero Hello World! \u{1F30E}<br>";
              ECHO "$Numero Hello World! \u{1F30E}<br>";
              eCHo "$NUMERO Hello World! \u{1F30E}<br>";
            ?>
          
        

Resultado:

1 Hello World! 🌎
2 Hello World! 🌎
3 Hello World! 🌎

Estruturas de controle em PHP

          
            <?php
              $algo = "alguma_coisa";
              if ($algo == "alguma_coisa") {
            ?>
            <h5>algo é alguma_coisa</h5>
            <
              }
            ?>
          
        

Resultado:

algo é alguma_coisa

Funções e escopo de variáveis

          
            <?php
              $x = 10;
              $y = 20;

              function teste() {
                $x = 100;
                global $y, $z;
                $z = 30;
                echo "Escopo interno < x: $x | y: $y | z: $z ---- ";
              }

              teste();
              echo "Escopo Externo > x: $x | y: $y | z: $z"
            ?>
          
        

Resultado:

Escopo interno < x: 100 | y: 20 | z: 30 ---- Escopo Externo > x: 10 | y: 20 | z: 30

Echo e Print

echo e print tem a mesma função de mandar informações para a tela;

          
            <?php
              print "E aí, print ou echo?
"; echo "Preferiria enfrentar o pato do tamanho de um urso ou urso do tamanho de um pato?<br><br>"; ?>

Resultado:

E aí, print ou echo?
Preferiria enfrentar o pato do tamanho de um urso ou urso do tamanho de um pato?

Formatos de Strings

  • Double Quoted
  • Single Quoted
  • Heredoc
  • Nowdoc

Double Quoted x Single Quoted

        
          $phpdq = "PHP \u{1F418}"; // Double quoted interpreta o conteúdo;
          $phpsq = 'PHP \u{1F418}'; // Single Quoted não interpreta o conteúdo;
          echo "echo aspas duplas: $php_dq";
          echo "echo aspas duplas: $php_sq";
          echo 'echo aspas simples: $php_dq';
          echo 'echo aspas simples: $php_sq';
          $nome = "Gabriel";
          echo "echo aspas duplas: Olá $nome";
          echo 'echo aspas simples: Olá $nome';
        
      

Resultado:

var aspas duplas e echo aspas duplas: PHP 🐘
var aspas simples e echo aspas duplas: PHP \u{1F418}
var aspas duplas e echo aspas simples: $php_dq
var aspas simples e echo aspas simples: $php_sq

echo aspas duplas: Olá Gabriel
echo aspas simples: Olá $nome

Aspas dentro de aspas

        
          $nome = "Gabriel";
          $snome = "De Oliveira Ribeiro";
      
          # echo "$nome "DEORI" $snome<br>"; // Isso aqui vai dar erro
          echo '$nome "DEORI" $snome<br>'; // Semântica incorreta
          echo "$nome \"DEORI\" $snome<br>"; // \ Ignora sintaxe de próximo caracter
        
      

Resultado:

$nome "DEORI" $snome
Gabriel "DEORI" De Oliveira Ribeiro

Nas aspas simples apenas \' funciona como sequência de escaope
Nas aspas duplas porém:

  • \n - Nova linha
  • \t - Tabulação Horizontal
  • \ - Barra invertida
  • $ - Sinal de sifrão
  • \u{} - Codepoint Unicode
        
          $nome = "Gabriel";
          $snome = "de Oliveira Ribeiro";
          $apelido = "DEORI";
          echo '$nome \'$apelido\' $snome<br>';
          echo "$nome \"$apelido\" $snome<br>";
          echo "$nome \"$apelido\" $snome<br>";
          echo "$nome:\t$nome \n \"$apelido\":\t$apelido \n $snome:\t$snome<br>"
        
      

Resultado:

$nome '$apelido' $snome
Gabriel "DEORI" de Oliveira Ribeiro
Gabriel "DEORI" de Oliveira Ribeiro
Gabriel: Gabriel "DEORI": DEORI de Oliveira Ribeiro: de Oliveira Ribeiro

Sintaxe Heredoc

Dá pra quebrar linhas no formato texto (Não em HTML), mantém espaçamentos e interpreta
Observe a sintaxe:

          
            $curso = "PHP";
            $ano = date('Y');
            echo <<< FRASE
            FRASE;
          
        

Resultado:

Estou estudando PHP em 2025! SHOWW

Sintaxe Nowdoc

Dá pra quebrar linhas no formato texto (Não em HTML), mantém espaçamentos e não interpreta
Observe a sintaxe:

          
          $curso = "PHP";
          $ano = date('Y');
          echo <<< 'FRASE'
            Estou estudando
              $curso em $ano!
          SHOWW
          FRASE;
          
        

Resultado:

Estou estudando $curso em $ano! SHOWW

Manipulação de strings

          
            $frase = "Hello World x Olá Mundo!";

            echo "caracteres:" . strlen($frase) . "<br>";
            echo "palavras:" . str_word_count($frase) . "<br>";
            echo "Reverso:" . strrev($frase) . "<br>";
            echo "Posição de caractere de início de palavra:" . strpos($frase, "World") . "<br>";
            echo "Troca sequência de char:" . str_replace("-", "/", "01-01-2023") . "<br>";
          
        

Resultado:

caracteres:25
palavras:5
Reverso:!odnuM lO x dlroW olleH
Posição de caractere de início de palavra:6
Troca sequência de char:01/01/2023

Tipagem

  • Dinamicamente tipada.
  • Fracamente tipada.

Escalares

  • $sobrenome = "Silva" | string
  • $idade = 27 | int ou integer
  • $peso = 72.2 | float, double - tipo real só até 7.4
  • $casado = true | bool ou boolean

Observe que:

  • 0x1A | Hexadeciaml | INT
  • 02818 | Octal | INT
  • 0b1010 | Binário | INT
  • 3e2 | 3*10^2 | DOUBLE
            
              $string_set = "String Set";
              $binary_number = 0b1010;
              $octal_number = 010;
              $decimal_number = 255;
              $hex_number = 0x1f;
              $pow_number = 3e2;
              // Outras formas
              $float_number = (float) "950";
              $float_number = (double) "950";
              // Removida na 7.4 VV
              $float_number = (real) "950";
              // Removida na 7.4 ^^
              $string_set = (string) "250";
              var_dump($string_set) // Mostra informações da variável
            
          

Resultados:

  • string(10) "String Set"
  • int(10)
  • int(8)
  • int(255)
  • int(31)
  • float(300)

Curiosidades

Em PHP o valor booleano "true = 1" por padrão ou pode ser qualquer valor;
Já o valor booleano "false = vazio" por padrão ou pode ser 0, null;

Compostos

  • array
  • object
          
          $vet = [6, 2.5, "Maria", 3, false];
            # echo "O vetor é $vet" // Array to string conversion não existe
            var_dump($vet);
            echo "<br><br>";
            class carro { // Classe de objeto
              public $cor;
              public $modelo;
              public function __construct($cor, $modelo)
              {
                $this->cor = $cor;
                $this->modelo = $modelo;
              }
              public function mensagem() {
                return "O carro é um $this->modelo $this->cor <br>";
              }
            }
            $carro_1 = new carro("Preto", "Gol 3kilimei"); // Nova instância
            echo $carro_1->mensagem();
            var_dump($carro_1);
          
        

Resultado:

array(5) { [0]=> int(6) [1]=> float(2.5) [2]=> string(5) "Maria" [3]=> int(3) [4]=> bool(false) }

O carro é um Gol 3kilimei Preto
object(carro)#1 (2) { ["cor"]=> string(5) "Preto" ["modelo"]=> string(12) "Gol 3kilimei" }

Especiais

  • null
  • resource
  • callable
  • mixed