- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вот это
if (isset($user->field_responsible_for['und'])) {Хочу заменить наif (isset($user-><сюда переменную>['und'])) {Если её тупо вставить, получаем Illegal string offset.
Мне не надо, чтобы переменная содержала метод, мне надо просто механически менять имена.
К примеру, было так
if (isset($user->field_responsible_for['und'])) {а стало так:if (isset($user->field_myfield['und'])) {Вам нужно подготовить имя метода для вызова, и положить его в переменную, а потом вызвать через фигурные скобки. Короткий сниппет и полный листинг ниже.
DenisVS, есть ещё
call_user_func, которому можно скормить переменную.
насчёт вызова метода объекта (или статического класса) -- я гуглил, на stackoverflow были решения того и того
Если правильно вас понимаю, http://php.net/manual/ru/language.variables.variable.php
Вероятно, $user-><сюда переменную> не массив, поэтому варнинг. Попробуйте сначала проверить, что это массив
Если я правильно потнял задачу ,то вот
Всем спасибо, буду разбираться на досуге.
Всем спасибо, буду разбираться на досуге.
Там же все очень просто.. я уже давал ссылку выше.
Если свойство класса массив и надо получить доступ к индексу - $obj->{$<переменная>}[индекс]
пример:
class foo {
var $var1 = 1;
var $var2 = "str";
var $var3 = array('key1' => 'val1', 'key2' => 'val2');
}
$obj = new foo();
var_dump($obj);
foreach (array('var1', 'var2', 'var3', 'not_exists') as $property) {
if (property_exists($obj, $property)) {
// set
switch (true) {
case is_int($obj->$property): $obj->$property += 1000; break;
case is_string($obj->$property): $obj->$property .= "_set"; break;
case is_array($obj->$property): {
foreach ($obj->$property as $key => $value)
$obj->{$property}[$key] = $value."_set"; // к array надо так обращаться - $obj->{$<переменная>}[ключ]
}
break;
}
}
}
var_dump($obj);