#php #if-statement #operators #advanced-custom-fields
#php #if-statement #операторы #дополнительно-пользовательские-поля
Вопрос:
У меня возникли проблемы с простым оператором not equal to, который по какой-то причине не вступает в силу.
Создал серверную часть поля, которая возвращает определенный идентификатор пользователя при get_current_user_id(); также возвращает идентификатор пользователя. Я пробовал echo bot $user и $current, где они оба возвращают идентификатор пользователя 9, как и ожидалось, для моего тестового пользователя.
Поскольку они $current и $user возвращают один и тот же идентификатор пользователя, содержимое не должно отображаться, но по какой-то причине это происходит. Я использую != в качестве оператора PHP для «Не равно» — чего мне не хватает?? Смотрите код ниже:
$user = get_field("user");
$current = get_current_user_id();
if( in_array( "bestyrelsevalg", $row['bestyrelse'] ) amp;amp; $user != $current )
Комментарии:
1. Неправильные скобки, ваша
amp;amp;
часть находится внутриin_array
. Изменить наif( in_array( "bestyrelsevalg", $row['bestyrelse']) amp;amp; $user != $current )
2. wooops… Я изменил его, но не повезло: (
3. 2-й аргумент функции in_array должен быть массивом. Является ли переменная $row[‘bestyrelse’] массивом?
4. ДА… Часть массива работает так, как ожидалось. Использовал код в течение многих лет, но сейчас пытается реализовать оператор «не равно», чтобы исключить пользователей из просмотра содержимого. Но пока не повезло.
5. @francisconeto прав, нам нужно посмотреть, какие ваши условия на самом деле сравниваются, поэтому вставьте var_dump из двух переменных — одна ошибка здесь, может быть, f.x, что ваше поле ACF установлено для возврата объекта вместо идентификатора