a opcao "allowed_classes" que indica as classes que podem ser usadas durante a desserializacao. Esse chave pode conter o valor true (qualquer classe), false (nenhuma classe) ou um array com os nomes das classes permitidas.Quando um objeto de uma classe nao esperada e desserializado, ele passa a ser da classe especial __PHP_Incomplete_Class ao inves da classe prevista.$obj = unserialize($str, ['allowed_classes' => ['Usuario', 'Endereco']]);Classe IntlCharNo PHP 7 foi criada a classe IntlChar para oferecer alguns recursos de "reflexao" sobre determinado caractere. Por exemplo, saber se ele e uma pontuacao, se ele e imprimivel, se ele e uma letra minuscula/maiuscula, etc. Basicamente a classe oferece varios metodos estaticos que recebem um caractere por parametro (este parametro pode ser, inclusive Unicode, com mais de 1 byte). Veja alguns exemplos de uso:// Metodos correspondentes as funcoes de stringIntlChar::chr(97);IntlChar::ord('a');IntlChar::tolower('A');IntlChar::toupper('a');// Metodos correspontendes as funcoes ctypeIntlChar::isalnum('a');IntlChar::isalpha('a');IntlChar::isblank('a');IntlChar::isdigit('a');IntlChar::isgraph('a');IntlChar::islower('a');IntlChar::isprint('a');IntlChar::ispunct('a');IntlChar::isspace('a');IntlChar::isupper('a');// Metodo para obter o tipo de caracter (veja a doc do metodo charType)IntlChar::charType('a'); Agrupamento de classes no useAte o PHP 7, um arquivo com namespace precisava colocar uma linha para cada use que pretendesse usar no arquivo. A partir do PHP 7, e possivel agrupar um conjunto de classes de um mesmo sub-grupo de namespace.use Core\MVC\{Model, View, Controller};Tambem e possivel colocar aliases para cada classe declarada desta forma:use Core\MVC\{Model as M, View as V, Controller as C};Gerenators tem o metodo getReturnNo artigo sobre genarators, vimos que o yield e uma especie de "return especial". Porem, no PHP 7, tambem e possivel utilizar o velho return em uma funcao generator. O modo de obter o valor do ultimo valor retornado e atraves do novo metodo getReturn como no exemplo:function colecao() { yield 'Burnout'; return 123; yield 'Street Fighter'; return 456;}$c = colecao();foreach ($c as $item) { echo "{$item}\n"; try { var_dump($c->getReturn()); } catch (Exception $e) { echo "Nada retornado\n"; }}var_dump($c->getReturn());No codigo acima, o foreach so ira imprimir "Burnout" e "Nada retornado", depois sera encerrado por causa do return da funcao. O getReturn dentro do foreach nao obtem nenhum valor retornado (portanto emite uma exception) pois no momento que "Burnout" e pego na interacao, o return ainda nao ocorreu. So na iteracao seguinte e que o generator executa o return e encerra a interacao no foreach. Por fim, o getReturn que esta apos o foreach vai imprimir "123" pois foi o retorno que foi executado de fato. O valor "Street Fighter" nunca sera percorrido, assim como o valor 456 nunca sera retornado.Generators de GeneratorsA partir do PHP 7, e possivel que um genarator retorne dados de outro generator atraves da sintaxe yield from [OUTRO_GENERATOR]. Antes e depois disso, ele pode retornar itens proprios dele, conforme o exemplo:// Generator convencionalfunction generatorA() { yield 1; yield 2; yield 3;}// Generator que devolve itens proprios e de outros generatorsfunction generatorB() { yield 'a'; yield from generatorA(); yield 'b';}foreach (generatorB() as $item) { echo $item;}O codigo acima vai imprimir "a123b".Divisao de inteirosEm contas de divisao, normalmente precisamos do resultado inteiro e o resto (separadamente). Ate o PHP 7, a forma mais simples de obter o resultado inteiro de uma divisao era fazendo a divisao, depois arredondando o valor para