У меня есть код, как показано нижевозвышенного регулярное выражение, чтобы добавить IsSet для всех переменных
$list['name'] = $obj->name;
$list['desc'] = $obj->desc;
и так далее (у меня есть более чем 1000 строк, как это в различных функций).
Я хочу добавить IsSet для всех переменных перед назначением
$list['name'] = isset($obj->name)?$obj->name:'';
$list['desc'] = isset($obj->desc)?$obj->desc:'';
можно сделать, используя поиск по регулярному выражению и замена это возвышенное? Или есть ли другой лучший способ сделать это быстро, чем делать это вручную?
Awesome. Это точно работает так, как я хотел.Но можете ли вы сделать мне еще одну услугу? Я хочу найти '$ array_name ['array_key'];' и заменить его на 'isset ($ array_name ['array_key'])? $ Array_name ['array_key']: '';' Я пытался изменить регулярное выражение для достижения что и все еще пытаюсь. Но если у вас есть ответ, это сэкономит много времени. Еще раз спасибо :) – siddiq
Это должно быть довольно легко, хотя '$ array_name' всегда тот же префикс, что и с' array_key'? поэтому 'array' будет соответствовать в обоих местах. В принципе, это будет найти шаблон '\ $ (. +) (_ Name \ [') (\ 1) (_ key' \];)' и заменить 'isset (\ 1)? \ 1: '';' ... –
Я действительно согласен с вашим ответом. Но мой ключ массива динамичен, и он большой. Это синтаксический анализ xml-элементов массива. Поэтому мой элемент массива выглядит как '$ tag_detail ['/ product-biitem/association-ends [1]/association-end [1]/target [1]/reference-to-product-contract [1]/product-contract- key [1]/object-id [1] ']. Мне нужно добавить isset для этого типа элемента массива. Спасибо за Ваш ответ. что помогло мне в некоторых других случаях. Если это какой-то простой материал, это мне очень помогло бы. ;) :) – siddiq