I just found this question and, while I'm still at the "researching stage" in figuring out what's going on. I just discovered something for Ruby on Rails called "Cucumber" http://cukes.info/
It is essentially 'story driven development' for Ruby and quite possibly a gold standard in the realm of functional testing, at least as far as I've seen in my travels. (I put this up there publicly, so experts can correct me if I'm wrong)
As an example of the language in Cucumber, you've got something that very closely resembles SQL. BUT seems to be even more human readable. From the cukes front page their language looks like this:
Scenario: Add two numbers
Given I have entered 50 in the calculator
And I have entered 70 in the calculator
When I press add
Then the result should be 120 on the screen
The above will compile and run as a test.
Now that's all preamble to the point of answering your question about PHP - BDD & TDD.
In echoing the comments above, PHPUnit will allow unit testing and according to this blog post: http://sebastian-bergmann.de/archives/738-Support-for-BDD-and-Stories-in-PHPUnit-3.3.html also supports "story style" BDD testing.
To expand on the above answer with respect to "SIMPLETEST" mentioned above, the ST system has a built in browser object class for browser automation, while PHPUnit has an extension for the SELENIUM browser automation http://seleniumhq.com (the advantage of Selenium vs. SimpleTest is that Selinium will run any on-page javascript while SimpleTest will not).
I hope you find this information helpful as it's the result of a number of months personal research and hands-on trial and error with the above technologies. If there are experts out there who can clarify and improve my understanding of the above, I welcome the feedback.