// Ao declarar uma variavel, voce usa o cifrão ($).
// Porém, quando ela é uma propriedade de uma classe, voce só acessa ela a partir do $this->propriedade. Sendo assim, imagino que o correto é chama-la dessa forma:
$this->url;
// Note que ela não tem o cifrão na propriedade.
// Quando voce usa o $this->$url; é o mesmo que fazer isso com uma variavel ($$var;)
// Neste caso, se a variavel é uma string, ela vai pegar o valor da string e nomear a variavel que se espera. Fica um pouco complexo de explicar, mas se voce dar uma procurada melhor vai achar.
// EX:
$url = 'morango';
echo $$url; // variavel morango não identificada
// Isto acontece porque ele usa 2 cifrões, onde o primeiro corresponde a variavel url e o segundo corresponde a uma variável 'dinâmica', porque depende do conteúdo da primeira variável, a url.
// Sendo assim, não daria erro se fosse assim:
$url = 'morango';
$morango = 'suco';
// logo:
echo $$url; // é igual a 'suco'.