This actually depends on what you want to do. Yeah, I also prefer the second one. Think for a code like this
class A {
public $var;
function set_var ( $data) {
$this -> var = $data;
}
}
You can simply call the function like
$obj -> set_var ( $val ) ;
Later you changed your mind to write the set function like this
function set_var ( $data) {
if ( $data)
$this -> var = $data;
// or $this -> var = $data * 10;
}
So though the internal structure of set function has changed, still your calling code will be the same as before and you don't need to change it.
But with
$object->variable = "Something";
you have to change each place you set the value.