Здравствуйте, подскажите как называется следующий синтаксис, когда непосредственно переменная играет роль функции:
$arr = array_filter(explode(' ', trim($str)), function($v) {
return mb_strlen($v) > 1;
});
И ответьте пожалуйста на второй вопрос, есть ли полная проверка if else, которую так же можно произвести через переменную, подобно тернарной, то есть:
$a = if($b = 0) {
//присваиваем $a = 0
return 0;
} else {
//присваиваем $a = 1
return 1;
}
когда непосредственно переменная играет роль функции
геттеры/сеттеры
getters/setters
class Animal {
function __get($property) {
//...
}
function __set($property, $value) {
//...
}
}
$cow = new Animal;
$cow->weight = '1 ton'; // same as $cow->__set('weight', '1 ton')
print $cow->weight; // same as print $cow->__get('weight');
php.net/manual
Getter’ы и Setter’ы — магия, которая должна знать свое место
let obj = {
conteiner: {},
get name() { return this.conteiner.name },
set name(_name) {
let type = typeof _name
if ('string' == type) {
this.conteiner.name = _name
console.log('_name строка');
} else if ('number' == type) {
this.conteiner.name = ''+_name
console.log('_name чисто');
} else {
this.conteiner.name = null
console.log('невалидный _name');
}
},
}
obj.name = []
console.log(obj.name);
obj.name = 7
console.log(obj.name);
obj.name = 'qwa'
console.log(obj.name);
// Пример использования тернарного оператора
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];
// Приведенный выше код аналогичен следующему блоку с использованием if/else
if (empty($_POST['action'])) {
$action = 'default';
} else {
$action = $_POST['action'];
}
let $action;
// Пример использования тернарного оператора
$action = (true) ? true : false
// Приведенный выше код аналогичен следующему блоку с использованием if/else
if (true) {
$action = true
} else {
$action = false
}
php:
В первом примере переменная $arr
принимает результат ф-ции array_filter. Функцию в данном случае она не представляет. $arr
будет присвоен отфильтрованный массив. Называйте это присваиванием:
$arr = array_filter(explode(' ', trim($str)), function($v) {
return mb_strlen($v) > 1;
});
А это вообще не имеет никакого смысла:
$a = if($b = 0) {
//присваиваем $a = 0
return 0;
} else {
//присваиваем $a = 1
return 1;
}
Присваивание через тернарный оператор выглядит так:
$a = ($b == 0) ? 0 : 1; // сравнение $b и присваивание $a
// $a = 0
$a = ($b = 0) ? 0 : 1; // присваивание $b,сравнение и присваивание $a
// $a = 1
Если говорить про "синтаксис, когда непосредственно переменная играет роль функции
", это называется переменная функции:
function foo(int $param) {
return $param + 1;
}
$foo = 'foo'; // теперь переменная $foo вызовет функцию foo()
echo $foo(1); // 2
Так же в языке присутствуют анонимные функции:
$a = function(int $param) {
return $param + 1;
};
var_dump($a(1)); // int(2)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Необходимо сделать скрипт позволяющий пользователю при нажатии на кнопку менять значение у переменной, причем не только у него, а вообще...
Доброго времени сутокПоля сайта пополняются через API перебором массива через цикл foreach
Установил Yii2 и OpenServerНастройки: Apache 2