Как правильно ответили выше, пора переходить от теории к практике — решать прикладные задачи. В конце-концов, язык — это только инструмент.
Вообще, профессиональный рост программиста обязан идти в двух направлениях: технологическом и теоретическом.
Например, что бы оценить технические знания, можно самого себя спросить и честно ответить:
— Для каких задач PHP подходит, а для каких — нет? Почему?
— Смогу ли я написать простейший файловый менеджер? А так, что бы не давать доступа к системным папкам и файлам? Не давать загружать зловредный код?
— Смогу ли я написать робота для парсинга страниц? А такого, что бы умел ходить по ссылкам внутри страниц? Если учесть еще множество кодировок?
— Знаю ли я о понятии «уязвимость»? Если знаю — смогу ли я найти их в своем же старом коде?
— Знаю ли я, что такое «регулярное выражение», где они используются и, главное, зачем?
— Знаю ли я о последних изменениях в языке?
— Смогу ли я написать простейший чат? Гостевую книгу? Баннерокрутилку? Что произойдет с ними, если одновременно туда зайдет 10000 посетителей и почему? Что надо сделать в таком случае?
Теоретическая часть — это вопрос об архитектурном проектировании программных продуктов, как таковых, причем далеко не обязательно речь идет о PHP. Рано или поздно программисту приходится участвовать в постройке «больших» систем и адаптировать некие алгоритмы для решения задач и придумывать свои.
Если речь о популярных алгоритмах — тут можно посоветовать таких монстров, как Дональда Кнута и его «Искусство программирования».
Model-View-Controller, Dependecy Ingection — вот о чем следует почитать для понимания принципов современных подходов проектирования приложений. Так же почитайте о «паттернах» / шаблонах программирования.
И все пробуйте на практике, без этого никак :)