Я работаю с автоматизированным тестированием Drupal на PHP.Это класс, в котором меня интересуют два метода: pass()
и fail()
.Каждый из них выдает отдельную строку на странице результатов, указывающую, прошла ли конкретная операция или нет, например,
if ( $value == "expected_value" ) {
$this->pass("Looking for expected value");
} else {
$this->fail("Looking for expected value");
}
. Что я заметил выше, так это то, что она немного многословна.Я хотел бы сделать что-то вроде троичного назначения, только вместо этого, где я решаю, какую функцию вызывать.Что-то вроде:
$function = ($value == "expected_value") ? "pass" : "fail" ;
$this->$function("Looking for expected value.");
Это самый лаконичный и элегантный способ, которым я могу сформулировать эту логику?Я попытался
$this->(($value == "expected_value") ? "pass" : "fail")("Looking for expected value.");
Но я получил ошибку разбора.Есть ли способ свести его к одной строке, как троичное назначение?
Редактировать Я понимаю, что многословие не является структурой if-else
, но я повторяю одно и то же сообщение дважды,Мне кажется, что должен быть способ выразить это, когда я объявляю сообщение только один раз.Конечно, я мог бы поместить это в переменную, но это заняло бы дополнительное пространство, и я также передал это дважды.
Вот еще один способ сформулировать мой вопрос: есть ли способ, которым я могу определить эту логику, выражая только Looking for expected value
один раз?