AMQP清除PHP驱动程序

Why do i have to specify the queue name in this method? http://www.php.net/manual/en/amqpqueue.purge.php i use constructor for define queue name like this:

    $this->queue = new AMQPQueue($connection);
    $this->queue->declare($queueName, AMQP_DURABLE);

ii is not neccessary to define queue name in methods like: get, ack, consume

That's an example of a badly designed interface. It looks like the designers of the PHP AMQPQueue class lumped a number of things together into one place rather than split them up into separate classes.

Methods relating to message consumption from like get, ack and consume relate to a specific queue and are (as you observed) tied to the queue passed in to the constructor. The other methods which are not queue specific (purge, delete, etc) are more administrative methods and belong in a separate class which does not take a queue name at construction time.