Is this correct factory method pattern?
The essence of the Factory method Pattern is to "Define an interface
  for creating an object, but let the subclasses decide which class to
  instantiate. The Factory method lets a class defer instantiation to
  subclasses."


If you insist on the above GoF definition there are two issues. 

First, you should create a DriveableFactory interface and rename your DriveableFactory to (for example) CarDriveableFactory.

abstract class DriveableFactory
{
    static public function create($numberOfPeople);
}

class CarDriveableFactory extends DriveableFactory
{
    static public function create($numberOfPeople) { ... }
}


But your code is fine, if you don't need (don't have a reason) the abstract DriveableFactory interface do NOT add it to the code.

The second issue is that the create method should not be static. If it's static subclasses cannot override the create method.

Finally, the App class looks unnecessary. So, I'd write something like this:

DriveableFactory factory = new CarDriveableFactory();
$DriveableMachine = factory-&gt;getDriveableMachine(2);
$DriveableMachine-&gt;start();


Some small improvements:

3.5 is an allowed value? And 3.1415? If not consider changing 

else if( $numberOfPeople &gt;= 3 &amp;&amp; $numberOfPeople &lt; 4)


to

else if($numberOfPeople == 3 || $numberOfPeople == 4)


In the last line of the create() method I would throw an IllegalArgumentException (or a similar one in PHP) with the message "invalid value: " . $numberOfPeople.