<p>I'm a PHP developer, and I use the MVC pattern and object-oriented code. I really want to write applications for the iPhone, but to do that I need to know Cocoa, but to do that I need to know Objective-C 2.0, but to do that I need to know C, and to do that I need to know about compiled languages (versus interpreted). </p>

<p>Where should I begin? 
Do I really need to begin with plain old "C", as Joel would recommend?</p>

<p>Caveat: I like to produce working widgets, not elegant theories.</p>

I think starting with C would be a smart thing to do. After all, Objective-C is C language with some extensions.
To develop in Cocoa you are required to know well how pointers and memory allocation work (there's no garbage collection on the iPhone), plus you will have to use some standard C libraries,
because a lot of the frameworks that are used to develop for the iPhone are C libraries
not Cocoa libraries. Take for example CoreGraphics, the library you have to use to draw on the screen on the iPhone. That's a C framework, meaning that it is not written in Objective-C.
Of course after learning C to a modest level, you could start reading about Objective-C and Cocoa, and in that case I would start with the
Objective-C language specification
(link to PDF)
and the Aaron Hillegas book on Cocoa.