How does the lack of method overloading in PHP affect object-oriented programming practices?

The lack of method overloading in PHP means that you cannot have multiple methods with the same name but different parameters in a class. This can limit flexibility and code readability in object-oriented programming practices. One way to work around this limitation is to use default parameter values or variable-length argument lists to achieve similar functionality.

class Example {
    public function doSomething($param1, $param2 = null) {
        if ($param2 === null) {
            // handle the case when $param2 is not provided
        } else {
            // handle the case when $param2 is provided
        }
    }
}