Á

Álvaro Moura

Última atualização em Jul 30, 2026

Com o lançamento do Scriptcase 9.8 seu projetos podem ser publicados em ambinetes atualizados, com o PHP 8 e 8.1.

Lembrando que ainda é possível realizar a publicação em ambientes com o PHP mais desatualizado, sendo compatível com o PHP 5.6 ou superior.

Afim de evitar problemas de incompatibilidade em seus códigos em eventos ou bibliotecas, recomedamos que o PHP utilizando em seu ambiente de desenvolvimento seja o mesmo do utilizado na produção.

A atualização do PHP trás diversas melhorias para o Scriptcase, como melhora de performace e segurança tanto no ambiente de desenvolvimento quanto nas aplicações geradas pela ferramenta.
Junto a atualização do PHP algumas funções são implementadas ou tem seus funcionamentos alterados afim de melhorar a utilização.

Confira abaixo algumas novidades do PHP, para ter acesso a lista completa clique aqui.

Readonly Properties

Suporte a propriedades somente leitura. Este tipo de propriedade não pode ser modificada ou editada após usa inicialização.

Como funcionava antes

  1. Class BlogData

  2. {

  3. private Status $status

  4. public function __construct(Status $status)

  5. {

  6. $this->status = $status;

  7. }

  8. public function getStatus(): Status

  9. {

  10. return $this->status;

  11. }

  12. }

No PHP 8.1

  1. Class BlogData

  2. {

  3. public readonly Statys $status

  4. public function __construct(Status $status)

  5. {

  6. $this->status = $status;

  7. }

  8. }

Operador "nullsafe" ?->

Implementação do operador nullsafe(?->) permite realizar verificações de valores nulo de uma forma bem mais simples.

Abaixo seguem os códigos comparado a utilização do operador no PHP 8 e como o mesmo códido deveria ser feito em versões anteriores.

A partir do PHP 8, esta linha:

  1. $result = $repository?->getUser(5)?->name;

É o equivalente ao seguinte código em versões anteriores do PHP:

  1. if (is_null($repository)) {

  2. $result = null;

  3. } else {

  4. $user = $repository->getUser(5);

  5. if (is_null($user)) {

  6. $result = null;

  7. } else {

  8. $result = $user->name;

  9. }

  10. }

Propriedades tipadas

As propriedades de classe agora suportam declarações de tipo.

  1. class User {

  2. public int $id;

  3. public string $name;

  4. }

O exemplo acima reforçará que $user->id pode ser atribuído apenas com valores int e $user->name somente com valores de string.

Union Types

Permite que uma mesma variável aceite dois tipos distintos de dados. Para definir os tipos que a variável pode receber basta utilizar o pipe "|" entre os tipos.

Exemplo resumido da utilização em código.

  1. function myFunction(int|float $number): int

  2. {

  3. return round($number);

  4. }

Função str_contains

Permite realizar uma busca dentro de uma string retornando um booleano.

Para mais informações sobre esta função acesse o https://www.php.net/manual/en/function.str-contains.php

Você pode estar lendo a RFC sobre essa função para poder verificar todas suas características.

Exemplo

  1. str_contains ( string $haystack , string $needle ) : bool

No código acima será realizada a verificação para indicar se a string $needle está presente dentro da string $haystack . Se sim retorna true caso contrário retornará false.

Funções str_starts_with() e str_ends_with()

Estas funções tem o funcionamento semelhante a str_contains() no entanto elas verificam se um string começa ou termina com determinada string, economisando o uso da CPU já que não será necessário percorrer toda a string.

Alem do funcionamento a syntaxe também é semelhante com a função str_contains.

  1. str_starts_with (string $haystack , string $needle) : bool

  2. str_ends_with (string $haystack , string $needle) : bool