Вот самая чистая реализация, которую я мог создать.(По сути, это комбинация из двух лучших ответов).
${(isset($x) ? 'y':'z'). '_class'} = 'new value';
Сначала я подумал использовать языковую конструкцию list()
, она не такая маленькая, но я все равно реализовал ее.
list($y_class, $z_class) = isset($x) ? ['new value', $z_class] : [ $y_class, 'new value'];
Если возможно, что $ y_class или $ z_class не установлены, то вам придется выполнить
list($y_class, $z_class) = isset($x) ? ['new value', isset($z_class) ? $z_class : null] : [ isset($y_class) ? $y_class : null, 'new value'];
, оба примера списка приведут к тому, что обеим переменным будет присвоено значение.