Это действительно зависит от того, для чего вы используете модель. В большинстве случаев имеет смысл иметь параметр для метода и использовать его каждый раз:
// Model
function get_username($userID)
{
// do something with $userID
}
// Controller
$this->some_model->get_username($some_id);
С другой стороны, иногда имеет смысл для модели быть "с состоянием" - есть ли у вас one userID на контроллер? Будет ли это больше, чем один? Вам нужен идентификатор пользователя в большом количестве методов этой модели? Тогда, возможно, вместо этого это будет иметь смысл:
// Model
function set_userid($userID)
{
$this->userID = $userID;
}
function get_username()
{
// do something with $this->userID
}
// Controller
$this->some_model->set_userid( $some_id );
$this->some_model->get_username();
В других случаях у вас может быть один идентификатор пользователя, который вы планируете использовать снова и снова, но иногда вам нужно использовать другое значение, то есть когда в игру вступают аргументы по умолчанию:
// Model
function set_userid($userID)
{
$this->userID = $userID;
}
function get_username( $userID = NULL )
{
if( $userID === NULL ) $userID = $this->userID;
// do something with $userID (not $this->userID)
}
// Controller
$this->some_model->set_userid( $some_id );
$this->some_model->get_username();