In what scenarios is it acceptable to use static methods in PHP classes, and how can they be implemented effectively without compromising the principles of object-oriented programming?

Static methods in PHP classes can be used for utility functions that do not rely on instance-specific data. They can be implemented effectively by keeping them stateless and not relying on any class properties or methods. This way, the principles of object-oriented programming are not compromised.

class MathHelper {
    public static function add($a, $b) {
        return $a + $b;
    }
}

// Usage
$result = MathHelper::add(5, 3);
echo $result; // Output: 8