[eluser]WanWizard[/eluser]
In general, you should avoid both, for every method, not only for models.
Only pass data to a method using arguments, only use the return value of the method.
If the method produces extra data that you store in class properties, uses getters and setters to interact with them, do not access the properties directly.
If you do what you ask, you will create a tight coupling between the caller and the callee, which will quickly turn into a nightmare if you decide at one point to change the API of your class. If you abstract everything as much as possible, you can change the internals of the class without having to go through your entire application to see if the change impacts the code calling the class...