How do Marker-Interfaces differ from regular interfaces in PHP and what advantages do they offer in coding?

Marker-Interfaces in PHP are interfaces that do not contain any methods. They simply act as a marker to indicate that a class implementing them should be treated in a certain way. This can be useful for categorizing classes or indicating certain behaviors without the need for actual method implementation.

// Marker Interface Example
interface Loggable {
    // Marker interface with no methods
}

class DatabaseLogger implements Loggable {
    // Class implementing the Loggable marker interface
}

function logMessage(Loggable $logger, $message) {
    // Log message using the specified logger
    echo "Logging message: $message";
}

$logger = new DatabaseLogger();
logMessage($logger, "Hello, world!");