Namespaces no PHP são projetados para resolver problema de escopo em bibliotecas PHP extensas. No PHP, todas as definições de classes são globais. Assim, quando uma autor de uma biblioteca cria vários utilitários ou públicas classes para uma biblioteca, ele precisa ter cuidado com a possibilidade de outra biblioteca com mesma funcionalidade exista e assim escolher nomes únicos para que estas bibliotecas possam ser usadas juntas. Normalmente isto é resolvido prefixando o nome da classe com uma string única.
Exemplo: Classes de banco de dados tem prefixo My_Library_DB, etc. Com o crescimento da biblioteca, mais prefixos são adicionados, criando então nomes grandes.
Disponível apartir da versão 5.3 do PHP.
Funções anonimas, também conhecidas como closures, permitem a criação de funções que não tem o nome especificado.
Elas são mais úteis como o valor de parà¢metros callback, mas podem tem vários outros usos.
Por padrão, argumentos de função são passados por valor (de forma que se você mudar o valor do parà¢metro dentro da função, ele não é alterado fora da função). Para permitir que uma função modifique os seus argumentos, eles devem ser passados por referência.
Interfaces de Objetos permite a criação de código que especifica quais métodos e variáveis uma classe deve implementar, sem ter que definir como esses métodos serão tratados.
Irei mostrar como criar funções que recebe parà¢metros em php;
A função abaixo recebe um nome de pessoa; Caso o nome seja informado ele retorna: “O nome informado é Joãozinho†senão “Você não informou seu nomeâ€.