&reftitle.constants; &extension.constants;

`AMQP_NOPARAM` (`integer`)

- Passing in this constant as a flag will forcefully disable all other flags. Use this if you want to temporarily disable the `amqp.auto_ack` ini setting.

`AMQP_DURABLE` (`integer`)

- Durable exchanges and queues will survive a broker restart, complete with all of their data.

`AMQP_PASSIVE` (`integer`)

- Passive exchanges are queues will not be redeclared, but the broker will throw an error if the exchange or queue does not exist.

`AMQP_EXCLUSIVE` (`integer`)

- Valid for queues only, this flag indicates that only one client can be listening to and consuming from this queue.

`AMQP_AUTODELETE` (`integer`)

- For exchanges, the auto delete flag indicates that the exchange will be deleted as soon as no more queues are bound to it. If no queues were ever bound the exchange, the exchange will never be deleted.

  For queues, the auto delete flag indicates that the queue will be deleted as soon as there are no more listeners subscribed to it. If no subscription has ever been active, the queue will never be deleted.

  Note: Exclusive queues will always be automatically deleted with the client disconnects.

`AMQP_INTERNAL` (`integer`)

- Clients are not allowed to make specific queue bindings to exchanges defined with this flag.

`AMQP_NOLOCAL` (`integer`)

- When passed to the consume method for a clustered environment, do not consume from the local node.

`AMQP_AUTOACK` (`integer`)

- When passed to the `AMQPQueue::get` and `AMQPQueue::consume` methods as a flag, the messages will be immediately marked as acknowledged by the server upon delivery.

`AMQP_IFEMPTY` (`integer`)

- Passed on queue creation, this flag indicates that the queue should be deleted if it becomes empty.

`AMQP_IFUNUSED` (`integer`)

- Passed on queue or exchange creation, this flag indicates that the queue or exchange should be deleted when no clients are connected to the given queue or exchange.

`AMQP_MANDATORY` (`integer`)

- When publishing a message, the message must be routed to a valid queue. If it is not, an error will be returned.

`AMQP_IMMEDIATE` (`integer`)

- When publishing a message, mark this message for immediate processing by the broker. (High priority message.)

`AMQP_MULTIPLE` (`integer`)

- If set during a call to `AMQPQueue::ack`, the delivery tag is treated as "up to and including", so that multiple messages can be acknowledged with a single method. If set to zero, the delivery tag refers to a single message. If the `AMQP_MULTIPLE` flag is set, and the delivery tag is zero, this indicates acknowledgement of all outstanding messages.

`AMQP_NOWAIT` (`integer`)

- If set during a call to `AMQPExchange::bind`, the server will not respond to the method. The client should not wait for a reply method. If the server could not complete the method it will raise a channel or connection exception.

`AMQP_EX_TYPE_DIRECT` (`string`)

- A direct exchange type.

`AMQP_EX_TYPE_FANOUT` (`string`)

- A fanout exchange type.

`AMQP_EX_TYPE_TOPIC` (`string`)

- A topic exchange type.

`AMQP_EX_TYPE_HEADER` (`string`)

- A header exchange type.