1) Часто при написании условий легко спутать = и ==. В данном случае стороннему разработчику придется понять, что это НЕ опечатка. Даже стандарт сделали, чтобы избежать таких ошибок, используется в Symfony, называется Yoda Conditions.
https://en.wikipedia.org/wiki/Yoda_conditions#Erro...
2) Читать другому разработчику такую конструкцию не удобно, т.к. обычно ожидаешь в условии увидеть какое-то сравнение. А сейчас требуется разобраться, что мы одновременно присваиваем и делаем проверку.
Исходя из пунктов выше, я бы не рекомендовал использовать такие конструкции.
Альтернатива, сделать присвоение перед условием явно:
public static function get($id)
{
$user_bank = self::findOneBy('`user_id` = ?', [$id]);
if (!$user_bank) {
$user_bank = new self();
$user_bank->user_id = $id;
$user_bank->deposit = 0;
$user_bank->deposit_sum = 0;
$user_bank->percent = 10;
$user_bank->exchange_sum = 0;
$user_bank->save();
}
return $user_bank;
}
PS: Но в итоге ответ зависит от того, что для Вас значит "приемлемо":
* значит, что понятно другому разработчику? - В общем случае не приемлемо. В случае договоренности (стандартам) в команде/на проекте, приемлемо.
* значит что код, просто работает? - приемлемо.
PPS: Похожий вопрос на англ. языке
https://stackoverflow.com/questions/2576571/assign...