Analisando as alternativas:
a) as variáveis começam com um sinal #, seguido do nome da variável.
Errada, as variáveis são reconhecidas pelo interpretador pelo sinal $, exemplo:
$soma = 1;
echo "soma: $soma"; // será exibido: "soma: 1"
b) possui comandos obrigatórios para declarar variáveis antes que elas recebam um valor.
Errada, não há necessidade de declaração explícita do tipo; a linguagem PHP possui tipagem dinâmica (variável assume o tipo de acordo com o valor atribuído; alguns descrevem estas características com inferência de tipo pelo fato do tipo ser determinado automaticamente; e o tipo pode ser alterado ao longo da execução) e fraca (permite operações entre tipos diferentes, sem necessidade de conversão explícita de tipos).
$teste = 1; // nesse instante o tipo é numérico (inferência de tipo)
$teste = $teste . " valor " . ++$teste; // tipagem fraca: operações entre tipos distintos sem necessidade de converter explicitamente
echo $teste; // será exibido: "1 valor 2"
c) o operador de concatenação (.) é usado para juntar dois valores string.
Correta, ver comentário do George Henrique.
d) não converte automaticamente a variável para o tipo de dado correto, dependendo do valor recebido.
Errada, ver comentários e exemplos da alternativa B.
e) tem apenas dois diferentes escopos de variáveis: local e global.
Errada, possui os escopos local, global e estático.