There is no best way. I'm an old duffer, and while I've been online since 1978 (and programming for longer than that), I still prefer learning new programming methods from a physical book. Web pages are usually too cluttered with graphics and navigation menus, and the information is often spread across too many pages for my comfort. But there's no reason why you couldn't learn PHP online. The w3C schools are very popular and respected. Start with that and see how it goes. If you don't like it, go to your local library and try a book.
I started with ebooks, there are many free and full of screenshots and you can just print it and viola!
I would suggest you to take a look on w3schools.com first. Then move on to high levels. If you build up your foundations of php, then I would suggest you to join in school and learn php thoroughly.
w3schools is pretty good. You can also download some ebooks or borrow some books from local library for reference (but google is a much better reference source for sure ) Even if you have no experience, I'd say you can start to work on a coding project in two weeks (that's the timeline for our programming course in my univ), but you need more time to become a expert.
Play around with existing scripts, phpbb got me into php, I could probably code phpbb now If you get specific problems just ask!
Learn it from anywhere its same. What differs is how you apply it. Learn from all the different sources.
Okay. I need to offer my opinion here. w3schools.com (which have absolutely nothing to do with w3c (the HTML group)) have a notoriously bad rep with the HTML / CSS / Javascript community. I've not looked much at their PHP-stuff, but it's very very basic, and you're just as well off looking at the comments on the definitions on php.net. I would suggest avoiding w3schools, simply because they use bad practices, usually doesn't offer alternative methods (like different ways to connect to databases, with different built-in methods (PHP has at least 3 major connection options: mysql_ (please avoid), mysqli_ (slightly better), and PDO (which is prefereable, but maybe slightly more difficult to comprehend for a beginner)). I would recommend buying a book, mostly for quick reference and examples, look at O'Reilly for instance, but the best way is to define some project you want to do - say "make a dynamic site getting information from a database" or "modify a current CMS or board-system" etc. and then try to figure out how to do these specific tasks - not having to learn everything at once might help. When I first started using PHP, I did that because I needed some way to create a page that loaded things dynamically - and I hardly knew HTML and CSS back then. HTML and CSS is very easy to learn, and PHP isn't that much harder. There are a lot of pitfalls though, especially when it comes to keeping your PHP-based apps secure, and there are hundreds, if not thousands of things that you can do wrong. Although, first and foremost, make sure you get things working, and then take a look at how you can make sure that the app is more or less secure (more is preferred )
Physical books are better. It has better index, has better step by step explaining because books are written in an order. But web pages are generally in a mess. That makes learn anything from an internet site harder than a normal book even a web site has too many mutlimedia opportunities. Website publishers are generally not experienced on explaining or teaching something. Knowign something is different than explaining and teaching. So many nice looking web sites are can't teach you anything easily even they are full of information. Because those information has to be given in a order from simple to harder, from basic to complex subjects.
do both. start with the book and try to make some custom scripts by yourself... like a blog script or something... and then help yourself with w3 and php.net