Это произошло со мной снова, вместе с сервером, загружающим html-файлы, а не обработкой. Я не использовал веб-сервер Apache некоторое время на компьютере, а между тем Ubuntu обновлялся как еще две версии изначально установленных LTS. Теперь это
$ cat /etc/issue
Ubuntu 16.04 LTS
Итак, php работал так:
$ sudo apt-get install lamp-server^
$ sudo a2enmod php7.0
$ sudo service apache2 restart
Теперь веб-сервер разбирал php. Возможно, теперь вам нужно обновить некоторые веб-страницы, так как теперь php7.0 работает там, где это было до запуска php5. О, хорошо.
Для краткого синтаксиса используйте троичный оператор:
blockquote>
var
/const
/let
переменная [ 1115] = ( условие )?
значение, если true:
значение, если falseСкобка, заключенная в скобки условия являются необязательными.
Демонстрация
/* Condition: if (number is greater than 10) ? return true : else return false */ const gTTen = number => { return (number > 10) ? true : false; } console.log(gTTen(11)); console.log(gTTen(9)); function ternary(number) { /* Using the previous function then store its return in a variable */ const tenFilter = gTTen(number); /* Condition: if (previous value is true AND the number is less than 20) ? range is 30 : else range is 0 */ let range = (tenFilter && number < 20) ? 30 : 0; /* Condition: if (range = 30) ? result is (the first string) : else result is (the last string) */ let result = range === 30 ? `${number} is within range` : `${number} is not within range`; return result; } console.log(ternary(50)); console.log(ternary(15));
Ах! Я понял это несколько дней назад, но не успел ответить. Я мог бы использовать локальные переменные, которые я перезаписывал только при выполнении инструкций.
Вот пример.
function retClone(bool) {
return bool; // Returns same input context for example.
}
if (t = retClone(true)) {
console.log(t); // true
// t is truthy, because we get `true` returned.
}
if (t = retClone(false)) {
// Wouldn't run.
// t is falsy.
} else {
console.log(t); // false
}
Спасибо всем, кто откликнулся. ~ Q
Синтаксис не позволяет отображать let
, const
или var
в этой позиции. Но вы можете просто определить переменную (без инициализации) и затем выполнить if
:
let n;
if (n = SomeFunc()) {
// n is truthy
} else {
// n is falsy
}
Если вы хотите ограничить область действия этой переменной только этим if
, то поместите ее в block:
// other code...
{
let n;
if (n = SomeFunc()) {
// n is truthy
} else {
// n is falsy
}
}
// other code...
Конечно, если ваша функция не имеет другого кода, тогда дополнительный блок не требуется: блок функции будет применен.
Многие не согласятся с вами, что задание в условии if
является чистым . Лучшая практика - избегать таких побочных эффектов в состоянии, хотя мнения по этому вопросу расходятся. Тем не менее, это не займет больше символов, чтобы написать это следующим образом, и это выглядит мне чище:
{
let n = SomeFunc();
if (n) {
// n is truthy
} else {
// n is falsy
}
}
Еще один подход заключается в использовании немедленно вызванного выражения функции , которому вы указываете возвращаемое значение функции в качестве аргумента:
(n => {
if (n) {
// n is truthy
} else {
// n is falsy
}
})(SomeFunc());