Mostrar mensagens com a etiqueta Programação em PHP. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Programação em PHP. Mostrar todas as mensagens

02/02/17

Logo XAMPP
Finalmente!
Há algum tempo que já estava disponível a nova versão do PHP 7.1 e o grupo que gere o XAMPP, o ApacheFriends ainda só tinha disponível a versão 7.0.13 do PHP.

O PHP já tinha as novas versões 7.0.14 e 7.0.15, além da 7.1 e 7.1.1 e a equipa do XAMPP estava a levar tempo em fazer alguma atualização...mas já está! :)

Hoje, dia 2 de Fevereiro de 2017 finalmente ficou disponível a nova versão do XAMPP com o PHP 7.1.1.

Nesta nova versão do PHP 7, foram introduzidas imensas actualizações e melhorias, basta acompanhar o changelog do PHP.

Mas...o XAMPP também tem muitas novidades! Nesta nova versão (que eu estava super ancioso, porque parecia que nunca mais chegava), as novidades são:
Versão v7.1.1-0

Atualização do PHP para a versão 7.1.1
Atualização do Apache para a versão 2.4.25
Atualização do OpenSSL para a versão 1.0.2j
Atualização do MariaDB para a versão 10.1.21

Nota: Agora o XAMPP usa a MariaDB em vez do MySql, mas continua tudo igual como na versão com o MySQL. (Os comandos de SQL são os mesmos)

Quem estiver interessado em usar o XAMPP (que inclui o Apache + MariaDB + PHP + Perl) só tem de ir a este site: https://www.apachefriends.org

Importante: Lembrem-se sempre de ler a documentação do PHP, pois alguns comandos foram alterados, outros eliminados e outros comandos novos foram introduzidos no PHP 7.

Se tiverem dúvidas ou sugestões é só adicionar comentário! :)

29/01/16

Este post é apenas para quem usa o ubuntu ou semelhante como o kubuntu.

logotipo do php7
O novo php7 já chegou e pelo que se diz pode ser até 9 vezes mais rápido que o php 5.6.

Como gosto de estar atualizado, e principalmente pelo desempenho que se anuncia sobre o php 7, decidi então instalar...mas...pode não ser assim tão fácil quando temos o PhpMyAdmin instalado com o php5.

O que acontece, é que depois de atualizar o php para a versão 7 e depois de atualizar o phpmyadmin para a versão mais recente que neste momento é a 4.5.4, pode acontecer que não se consegue aceder mais ao phpmyadmin.

Depois de ver o log (em var/log/apache2/error.log) encontrei o erro:

[:error] [pid 5855] [client ::1:38433] PHP Fatal error: Uncaught Error: Class 'phpseclib\\Crypt\\Random' not found in /usr/share/phpmyadmin/libraries/session.inc.php:116\nStack trace:\n#0 /usr/share/phpmyadmin/libraries/common.inc.php(357): require()\n#1 /usr/share/phpmyadmin/index.php(12): require_once('/usr/share/phpm...')\n#2 {main}\n thrown in /usr/share/phpmyadmin/libraries/session.inc.php on line 116

Depois de analisar esse erro, descobri que o problema era a falta dos ficheiros da libraria "phpseclib", neste caso o ficheiro random.php.

Para resolver o problema, pode encontrar os ficheiros necessários aqui: https://github.com/phpseclib/phpseclib/tree/master/phpseclib

A estrutura no seu pc, sobre o ficheiro random.php deve ficar assim:
usr/share/phpmyadmin/libraries/phpseclib/Crypt/Random.php

Caso tenham dúvidas, basta colocar um comentário!

26/01/16

Imagem PHP 7

Em dezembro de 2015 foi lançado o PHP 7, a primeira versão maior a ser liberada depois de anos e a sucessora da 5.6. Essa nova versão traz muitas novidades e é um salto incrível para o PHP em termos de performance e sintaxe do código.
Mas o que houve com o PHP 6? Há alguns anos circulou uma versão preliminar do que pretendiam lançar como o PHP 6. A versão nunca foi concluída, mas algumas empresas a utilizaram e inclusive livros foram publicados sobre ela. Para evitar confundir a nova versão do PHP com essepre-release antigo, resolveram batizá-la de "PHP 7".
Vamos às novidades:

Performance, muita performance!

A performance do PHP 7 em relação ao 5 aumentou em torno de 10–25% de acordo com os primeiros testes. Existem vários testes de performance por aí, alguns sugerindo mais velocidade do que usando a HHVM.

Novas palavras reservadas

No PHP 7 teremos novas palavras reservadas, incluindo os nomes dos tipos de dados primitivos (intfloatboolstringtruefalsenull) além de resource,objectscalarmixed e numeric. Essas palavras não poderão ser usadas em namespaces, nomes de classes, traits e interfaces.
Essa mudança foi feita agora para possibilitar a criação de classes representando tipos escalares em uma versão futura (quem sabe no PHP 7.1!). Para ver a mágica que se pode esperar disso, consulte este repositório:https://github.com/nikic/scalar_objects. Já pensou poder chamar $string->length() ao invés de strlen($string)?

Remoção dos Construtores do PHP 4

No PHP 5 ainda era suportado o jeito antigo de escrever métodos construtores para as classes. No PHP 7 esses construtores antigos lançarão um aviso do tipo E_DEPRECATED
class Veiculo
{
    public function veiculo()
    {
        // um construtor no PHP 4, lançará um E_DEPRECATED no PHP 7
    }
public function __construct()
    {
        // um construtor no PHP 5
    }
}

Operador "Espaço-nave": <=>

Esse operador funciona de forma semelhante aos <, <=, ==, > e >=, mas caso a comparação seja idêntica, retornará 0. Se o valor da esquerda for maior, retornará 1, se o valor da direita que for maior, retornará -1.
var_dump(42 <=> 42); // retorna 0
var_dump(42 <=> 5); // retorna 1
var_dump(5 <=> 42); // retorna -1

Declaração do Tipo de Retorno

É possível declarar o tipo de retorno dos métodos, desta forma assegurando o tipo de retorno de maneira mais consistente do que simplesmente escrevendo um PHPDoc. Através disso será possível prevenir que um método que sobrescreve outro quebre o tipo de retorno original, além de impossibilitar que um método retorne null, forçando uma boa prática de programação.
function getCliente() : Cliente
{
    return new Cliente; // válido
    // return null; // inválido
    // return 12345; // inválido
    // return new OutraClasse; // inválido
}

Tipos de Parâmetros Escalares

O PHP 5.6 já permite obrigar que um argumento de um método seja do tipo array ou uma instância de determinada classe. Com o PHP 7 também é possível declarar que um parâmetro precisa ser de um tipo escalar (int, float, string e bool):
function somaInteiros(int $a, int $b)
{
    return $a + $b;
}
somaInteiros(1, 2); // retorna 3
somaInteiros("string", false); // erro

Escape de caracteres Unicode

Agora será possível fazer o escape de qualquer caractere Unicode em strings através da seguinte sintaxe:
echo "\u{1F602}"; // imprime o emoji "😂"

Operador "Null Coalesce": ??

Muitas vezes temos a necessidade de testar se um parâmetro existe, retornando seu próprio valor caso positivo, e um valor alternativo caso contrário. No PHP 5.6, teríamos de testar a existência do parâmetro antes de retornar seu valor, caso contrário receberíamos um E_NOTICE. Agora é possível usar o operador ??, que testa a presença do parâmetro e não lança um aviso em caso de não estar definido:
$lista = ['chave' => 'valor'];
// PHP 5.6
$a = isset($lista['nao_tem']) ? $lista['nao_tem'] : 123; // válido
$a = $lista['nao_tem'] ?: 123; // E_NOTICE se a chave não existir
// PHP 7
$a = $lista['nao_tem'] ?? 123; // válido

Sintaxe Uniforme de Variáveis

Foi introduzida uma sintaxe de variáveis consistente, que permitirá realizar operações sobre expressões arbitrárias, aninhadas e/ou diferentes, de forma semelhante ao que já podemos fazer em JavaScript.
$empresa->getConsultores()[0]->marcarComoAtivo();
Classe::getClosure()();

Remoção de Tags Alternativas

As seguintes tags alternativas para abrir e fechar código PHP foram removidas: <%, <%=, %>, .

Agrupar classes inclusas com "use"

Quando utilizamos diversas classes de um mesmo namespace, agora será possível agrupá-las ao invés de repetir o namespace para cada classe:
// PHP 5.6
use yii\helpers\ArrayHelper;
use yii\helpers\Html;
use yii\helpers\Url;
// PHP 7
use yii\helpers\{ArrayHelper, Html, Url};

Operador de Divisão de Inteiros

Foi adicionado um novo operador (%%) e uma nova função (intdiv) que permitem a divisão de um inteiro por outro, retornando um inteiro ao invés de um float. Desta forma, 3 %%2 (ou intdiv(3, 2)) resultaria em 1 enquanto 3 / 2 resultaria em 1.5.

Classes Anónimas

Tais como funções anónimas (closures), classes anônimas são úteis quando apenas criadas e/ou utilizadas em tempo de execução.
var_dump((new class {
     public function execute() { return 12345; }
})->execute()); // 12345

Conclusão

O PHP 7 mal saiu do forno, mas já são discutidas as novidades para a geração 7.1. Para saber mais e acompanhar o desenvolvimento do PHP, acompanhe a página de Request for Comments no site.

17/04/14

imagem de código de programação informática
Estás a aprender a programar em PHP? Precisas saber se um número é par ou impar?

A programação em php e muito fácil e existem comandos para fazer tudo!

Aqui fica um exemplo para numeros pares e impares...


if ($variavel%2 == 0)
{
  echo "Numero par";


}else{
 

  echo "Numero impar";
}


Se precisares verificar se um numero é apenas impar:


if ($variavel%2 != 0)
{

  echo "numero impar";
}


tags: numeros impares e pares, pares e impares, programação em php.

10/01/12

logo_phpQuando o limite de tempo de, por exemplo, um ciclo, é ultrapassado é retornado um erro fatal a dizer que o tempo de execução dessa função excedeu o seu limite máximo, que por defeito é de 30 segundos.

Geralmente esse erro aparece quando há upload de arquivos, ciclos com muitas condições ou grandes requisições no banco de dados.

Para resolver esse erro, abra o ficheiro php.ini e altere a linha que tem esta instrução: max_execution_time , colocando um valor maior.

Pronto, já está resolvido. Caso tenha alguma duvida deixe comentário!