Как я могу использовать сокращение, если с возвратом - PullRequest
0 голосов
/ 01 октября 2018

Я хочу создать условие с условным обозначением if и использовать return в условии, как я могу сделать что-то вроде этого

Вот мой контроллер

public function index()
{
    $all = User::all()
    $all = $this->calculatePercent($all);
    return view('dashboard.index');
}

Я хочу выполнить условие

If (!empty($user)){
    $user = $user;
} else {
    return 0
}

Как я могу сделать что-то вроде этого:

public function calculatePercent($user) 
{
    $query = !empty($user) ? $user : return 0;
}

Обновление Я хочу сделать что-то подобное в моей функции

public function calculatePercent($user) 
{
    $user = !empty($user) ? $user : return 0;
    foreach ($user as $item) {
        $percentSell[] = ($item->total * 100)/$item->target;
    }
    return $percentSell;
}

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Привет, к сожалению, в настоящее время вы не можете вернуться из одного из условий триного выражения (короткая рука, если).

Выполнение:

$foo = true ? return true : false;

Дать вам

syntax error, unexpected 'return'

При этом для одной строки if's вы можете опустить {} фигурные скобки

if(true) return true; else $foo = false;

Что на самом деле не так уж много дольше.Я не уверен точно, почему это так (не могу сделать это в тринах).Это может быть потому, что он имеет своего рода подразумеваемый доход.Это может быть потому, что возврат заканчивается независимо от того, в какой области вы находитесь, и из-за этого не может быть завершена трина.Или это может быть потому, что он может выполнить такое назначение (как показано выше):

$foo = true ? return true : false;
$foo = return true; //this gives the same syntax error

Ну, по какой-то причине, это просто невозможно в текущей версии PHP.Возможно, когда-нибудь в будущем они могут сделать это, но это похоже на вещи с низким приоритетом, поэтому я не задерживаю дыхание ... lol

Просто для полноты вы можете изменить это:

$query = !empty($user) ? $user : return 0;

Into

if(!empty($user))$query=$user;else return 0;

Также обратите внимание, что вы можете удалить пробелы в определенных местах.Сокращенные вещи вроде этого хороши, но есть кое-что, что можно сказать о читабельности.Для этого это, вероятно, хорошо, но читабельность очень важна в коде, и это гораздо важнее, чем быть кратким и кратким, IMO.

Когда я пишу код, мои приоритеты

  • , что ондостигает желаемого результата
  • , что он читается
  • , что он краткий (не раздутый)
  • , что он хорошо преформируется

Если это не такне делайте то, что должно быть, это бесполезно, если вы не можете прочитать это, трудно поддерживать и убедитесь, что оно делает то, что должно.Если в нем много ненужного раздувания, его трудно прочитать и, вероятно, он работает плохо.Как только все это будет выполнено, тогда, если мне нужно, я постараюсь улучшить его производительность.

В любом случае, счастливое кодирование!

0 голосов
/ 01 октября 2018
public function calculatePercent($user) 
{
    if (empty($user)) return 0; // if $user is empty code ends here with return 0.

    foreach ($user as $item) {
        $percentSell[] = ($item->total * 100)/$item->target;
    }

    return $percentSell;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...