Ипатьев, и в чем противоречие? Ну да, пишу код. Потом тестирую на наличие ошибок, если есть правлю. Тут вот нужно на 8-ку перевести с 5.4. Ошибок выше крыше и архитектура не заходит. Ты точно куратор тега, а не какой то школьник который тут кроме оффтопа, флуда и флейма больше ничего не делает?
Пока ты тут ерничал, человек зашел и просто дал решение. А ты продолжаешь желчью изливаться. В общем удачи. А за решение AUser0 еще раз благодарочка
AUser0, Спасибо. Единственный, кто подкинул реально годный вариант. В отличии от некоторых. От которых помощи не дождешься, зато нравоучений с позиции гуру, вагон и целая тележка.
Ипатьев, не беспокойтесь, уважаемый, с массивами работаю не меньше переменных. Однажды попадется вам проектик, с особой структурой и архитектурой, поглядим, как будет в таком случае "умничать". Когда просто встанете перед фактом, что есть файловая структура, в которую прописывается в каждом цикле и изымается от туда в последующих гора переменных. Может тогда немного по другому будете смотреть на вещи.
Dmitry Bay, я не хочу спорить, я хочу узнать есть ли какое-то решение как это сделать, назначить все по уму, что бы и варнингов не было, но и не писать сотню раз разные переменные которые будут использоваться. Вот и интересуюсь как сделать лучше, может есть какое интересное решение, а в ответ сплошные нравоучения получаю.
Дмитрий, затем, что они все используются. Скрипты бывают разные и задачи тоже, и масштабы проектов соответственно тоже. Поверьте не все сайты содержат 10 переменных максимум.
Дмитрий, В смысле никто не знает сколько у него было яблок? В том то все и дело, что я знаю, я впервые ввожу в цикле новую переменную, которая никогда и нигде не использовалась до этого в коде. Соответственно не может переменная появится сразу со значением. Это же очевидно, что она либо 0, либо просто "";
Переменная не буратино который живет своей жизнью и накапливает что либо. переменная это то, что возникает здесь и сейчас. Просто зачем мне дважды ее назначать, не понятно.
То есть нужно писать всю сотню переменных с нулями в кучу перед циклом, что бы они в нем заработали, когда будут там же в нем появляться и назначаться?)
Как же было хорошо на PHP 5.2, который сразу понимал, что нужно просто создать переменную и назначить 0 ей по умолчанию (если переменная входит в числовое выражение и "" по умолчанию, если к ней добавляется текст). Чем дальше, тем хуже и хуже PHP
То есть раньше если переменная была пустой, то просто она не заполнялась, и получалась пустая ячейка. И меня это устраивало, почему я сейчас должен каждый раз проверять каждую, пустая она или нет, для меня загадка. Так как входящая переменная может быть хоть такой хоть такой, для меня без разницы. В одном случае переменная примет значение, в другом случае нет. И то и то разные условия, которые я вписываю. Пустое значение для меня тоже значение.
toxa82, у меня есть варнинг. Говорю ж, сейчас прям страницу засрало 83 строками. Где я в переменную, через разделители прописываю другие переменные, полученные из explode. Так он на все, что пустые ругается.
toxa82, файлы, которые содержат строки, разбитые на ячейки разделителями, которые и определяешь в explode. Чаще всего это | разделитель.
И когда нужно узнать какая ячейка какие данные имеет, обращаешься к переменной полученной из explode("|", $file)
toxa82, вот у меня сейчас выдет в одном месте Warning: Undefined array key 83
Это 83 переменных, что бы каждую проверить input[0]... input[83] в любом случае придется вызывать цикл и в него вписывать isset. с увеличивающейся $num который вписывать в input[$num]. Как по мне это просто ужасно.
toxa82, не, скрывать конечно не вариант. Надо исправлять. Мне всегда самому спокойней, зная, что файл с логами пустой не потому что отключен, а потому что не на что ругаться.
Загрузка сайта с кучей огромных скриптов и функций у меня занимала 0,2 секунды. Практически как папки на ПК открывались, не думаю, что там были какие-то нагрузки на производительность. Но геморроя сейчас подкинули просто ужас. Я не представляю как я буду все эти сотни explode() сейчас переписывать на какие-то бесполезные циклы, которые как мне еще дольше работают и вызывают доп.нагрузку. А все для того, что бы просто проверить назначение переменной. Как по мне, так это абсурд. Но выбора нет похоже. А чем заменить то explode() в моей ситуации можно? Ну может есть какой-то быстрый и более изящный вариант?
toxa82, С какого перепугу у меня был говнокод, если он не вызывал ни одного варнинга, не говоря уже об ошибках. Если php позволял так просто назначать переменные, значит можно.
Сейчас стал ругаться какого-то черта. Зачем спрашивается каждую входящую переменную проверять. Ну пустая она, да и бог с ним, может мне так и надо, будет пустая значит один результат, назначится каким то данным, значит другой результат.
toxa82,ну так я потому и спрашиваю тут, как можно малой кровью отделаться, так как не знаю, что нужно прописать, что бы не было этих ошибок. У меня не было их никогда. Не нужно наговаривать. Они появились только после перехода на 8. Если бы мне было плевать на ошибки, я бы их отключил и забил. Потому сюда и пришел, так как нужно править. И я удивился, что то что раньше не вызывало ошибок никогда, теперь всю страницу ими засирает.
Жа почему говнокод, если есть возможность кортко сделать что либо и получить результат. По идее каждая новая версия должна сокращать количество строк, облегчая написание кода, но с каждой новой версией нужно целые пользовательские функции писать, для того, что бы работало, то что раньше достигалось буквально 1 строчкой.
Сейчас вот, после того как я правлю код под PHP 8, мой аккуратный код стал больше похож на говнокод.
Если раньше переменная просто назначалась $a=$input[1]; легко и просто.
То теперь эта элементарная вещь превращается именно, что в говнокод с кучей ненужных условий и строк, делая файл объемнее раз в 5 if(isset($input[1])){$a=$input[1];}
А если таких $input[1].....$input[101], каждую проверь. Просто жесть!
Что бы просто назначить переменную, вызывать целую функцию isset().
Как же у меня горит, прям словами не передать. Все кругом с новыми версиями все упрощают, что бы чище было и проще кодировать, эти же на PHP все наоборот усложняют. С каждой новой версией, вся страница в ошибках сразу становится у всех.
Пока ты тут ерничал, человек зашел и просто дал решение. А ты продолжаешь желчью изливаться. В общем удачи. А за решение AUser0 еще раз благодарочка