I found this link while I was learning PHP:
http://www.odi.ch/prog/design/php/index.php
Summary: using PHP as a learning tool or your first language is a bad idea.
The best language to learn to start is probably Java, for three main reasons.
1. It is a true object oriented language. Don’t listen to old guys who say that object oriented programming is wrong, a fad or for bad programmers (at least not yet). 90% of software engineering jobs out there require object oriented programming, and corporations use object oriented programming to increase productivity (or if you are cynical to limit the amount of damage junior developers can do). So if you are just starting you want a real object oriented language, not something with ad hoc support like PHP.
2. You are interested in general programming theory which Java supports built-in. For example, Java has many built-in data structures. Design patterns are *the* domain of Java. There are two main textbooks that teach you design patterns; the first being Design Patterns: Elements of Reusable Object-Oriented Software with examples in C++. The second is Head First Design Patterns, examples in Java. The first textbook is the definitive textbook about design patterns, but it’s quite dated and C++ is a difficult language to learn. Meanwhile Java is much more accessible, and the Head First book is incredible and you can get through it in a few weeks if you’re a beginner or a day if you’re a comp sci major.
3. There is a natural progression from Java to C#. .NET probably makes up 90% of entry level jobs out there, and C# has been called a “Java ripoff.” Java has natural transitions to C#, JavaScript (the only client-side scripting language that has gained widespread acceptance and practically a must) and GUI design through Swing and SWT. Out of the “big three” Internet languages (C#, PHP, Java), Java is the best choice since once you know Java you can master all three of them.
4. You do not want to be worrying about low level issues like garbage collection and cross platform compatibility with your first language.
So if you are just learning programming I suggest you get Head First Design Patterns immediately, being the seminal entry level textbook, followed by online resources about Java data structures (this is assuming you have spent some time learning the Java syntax and object oriented programming principles in general). One word of warning: some Java developers fall in love with Java and spend years on Java and know only Java. This is not a good idea unless you want to compete with 8 dollar an hour Java coders from India. I would spend six months to one year maximum on my first programming language, then immediately learn several more. The whole point of the first one is to form a foundation for learning many more, and Java can get you there the fastest.