В дополнение к вышеперечисленному очень рекомендую книгу «PHP. Справочник» («PHP in a Nutshell» в оригинале) Пола Хадсона (Paul Hudson). Очень понятная и полезная книга. Несмотря на название, это скорее учебник, чем справочник.
И несколько более сложная, но очень полезная книга «Профессиональное программирование на PHP» (Advanced PHP Programming) Джорджа Шлосснейгла (George Schlossnagle). Это конечно не для новичка, но там разные разделы — некоторые можно и нужно прочесть и начинающему программисту.
А вообще научиться можно только на практических задачах — сделать пусть простенький, но реально работающий сайт на какую-то интересующую вас тематику, а там по ходу дела будут возникать задачи и вопросы, которые придется решать и по ходу решения учиться.
Ну еще один совет — может быть банальный, но не стоит пренебрегать сайтом
php.net — как работает та или иная функция лучше узнавать там, потому что книги могут быть и устаревшие, и с опечатками, а тут фактически первоисточник. Поставьте «Денвер» и в нем тестируйте примеры работы функций. Сайт не заменит книги, но будет хорошим дополнением.