я не смогу ответить лучше, чем описано в документации, сорри! вам уже со всех сторон рассказали, но похоже этого недостаточно. пора почитать первоисточник.
короче я удаляю isset, просто на другом форуме мне объяснили так Добавлено спустя 17 минут 1 секунду: исправила Код (PHP): public function RikkiTxt($RIA) { $RikkiTxt = ""; if ($RIA['inputClass'] != 'hide') $RikkiTxt .= "<p".(!empty($RIA['pClass']) ? " class='".$RIA['pClass']."'" : "").">".(!empty($RIA['pTxt']) ? $RIA['pTxt'] : "")."</p>".PHP_EOL; if (isset($RIA['simpleInGr'])) { $RikkiTxt .= "<div id='idDi".$RIA['inputName']."' class='input-group'>".PHP_EOL; $RikkiTxt .= "<span class='input-group-addon'>".(!empty($RIA['spanTitle']) ? $RIA['spanTitle'] : "")."</span>".PHP_EOL; } elseif (isset($RIA['countInGr'])) { $RikkiTxt .= "<div id='idDi".$RIA['inputName']."' class='input-group'>".PHP_EOL; $RikkiTxt .= "<span class='input-group-addon'>".(!empty($RIA['spanTitle']) ? $RIA['spanTitle'] : "")."<span id='idSp".$RIA['inputName']."' class='".$RIA['countSpanClass']."'>".($RIA['maxlength']-2)."</span></span>".PHP_EOL; } $RikkiTxt .= "<input type='text' id='id".$RIA['inputName']."' name='".$RIA['inputName']."' class='".$RIA['inputClass']."' value='".$RIA['value']."'".(!empty($RIA['maxlength']) ? " maxlength='".$RIA['maxlength']."'" : "").(!empty($RIA['placeholder']) ? " placeholder='".$RIA['placeholder']."'" : "").(!empty($RIA['js']) ? " ".$RIA['js'] : "").(!empty($RIA['readonly']) ? " readonly" : "").">".PHP_EOL; if (isset($RIA['simpleInGr']) || isset($RIA['countInGr'])) $RikkiTxt .= "</div>".PHP_EOL; return $RikkiTxt; } PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
Правильно объяснили. И выше я Вам то же написал. И artoodetoo прав - изучайте матчасть. В доке терпимо описано. Что Вам стоит понимать, для начала: 1. В $_POST все значения строки. (подумайте, что выдаст isset() и что emty()) 2. Посмотрите, что выше написано про аналог empty(). Затем замените в вашем "isset($RIA['pTxt']) && !empty($RIA['pTxt'])" empty() на аналог, изучите полученное и решите, хотите вы писать "индуский" код или нормальный. В общем, напрягите хотя бы пару извилин. Иногда помогает.
$_POST здесь никаким боком не участвует, вы хоть код смотрели?. Все замечательно бегает на одном empty, я не знаю может это сервер такой, вообще этот сервер я выбрала из целого ряда как наиболее заточенный. Вот совет по делу без воды про индусский код и посылы на мануалы: если честно, на скорость загрузки больше повлияла заглушка в виде return, чем использование только empty
Chushkin, да даже если про $_POST рассмотрим достаточно известный случай из забугорья, который без изменений продублировал и перевел ruseller Код (PHP): <?php include("db.php"); session_start(); $msg=''; if($_SERVER["REQUEST_METHOD"] == "POST") { $recaptcha=$_POST['g-recaptcha-response']; if(!empty($recaptcha)) { include("getCurlData.php");... ?> http://www.9lessons.info/2014/12/google-new-recaptcha-using-php-are-you.html http://popovashlemnahuj.com/lessons.php?rub=37&id=2178 с этого все и началось я понимаю вы блестящие знаете теорию, а я всего лишь практик, получаю все эмпирическим путем я хотела задать вопрос про empty на форуме zend, но там такая мутная регистрация - половину своих ПД надо выложить, что так и не сложилось Щааааз начнется старый добрый срач! Признаки налицо: толстый сарказм по поводу компетенции собеседника + авторитетное мнение г-на Попова. Про важность оптимизации по скорости isset()/empty() уже было. Буря! Скоро грянет буря! — модераторЪ PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
А что вы хотели показать этим фрагментом? Что empty() применяют именно так? … ну и как? Хорошо это или плохо — ваше мнение как-то неочевидно из сообщения. Я бы сказал, это пример так себе кода ))) А вы еще и отступы продевали, теперь он вообще говна кусок.
ничего не делала, просто скопировала и вставила в Код (Text): Да ничего я не утверждаю, я ищу человека который длительное время уже практиковал замену иссета, в гулгле уже все форумы перечитала, у вас тут даже тема была [url]http://php.ru/forum/viewtopic.php?t=34304[/url] [color=#FFFFFF]Не поверите, но стараюсь успевать за временем)) никакой обиды нет не переживайте, на то что я женского рода тоже внимания не обращайте, смело высказывайте свое мнение, но только и на меня не обижайтесь если я отвечу в том же ключе[/color]
Откуда у меня появилась мысль в некоторых случаях заменять иссет и + "!isset($var) or $var == false" возможно гдето на забугорных форумах человек нашел подтверждающую информацию. Чисто психологически, человек осознанно ведет публичный блог и делится там информацией, значит информация более менее проверенная? Но я все равно в этот код добавила isset)
А почему? У любого действия есть причина. Нормальная причина — это основываясь на задокументированном поведении функций выбрать то или другое. А делать что-то потому, что Женя Попов так процитировал или потому что artoodetoo так хочет, это, извините, слабая причина. Надо принимать осознанное решение! Я обычно пишу так (я не навязываюсь, далее объясню свой стиль): Код (PHP): $id = isset($_GET['id']) ? $_GET['id'] : 0; Потому, что на девелоперском сайте у меня всегда включен полный вывод ошибок как error_reporting(-1) и если внезапно параметр не будет указан, то здесь всё равно не возникнет предупреждения, а вот так возникло бы (как и у Попова): Код (PHP): $id = $_GET['id']; // ахтунг! возможна выдача "Notice: Undefined offset"! if (!isset($id)) … Также я не пытаюсь сразу привести тип к целому, как некоторые делают. Потому что я всегда использую плейсхолдеры и не боюсь инъекции. Почему isset() а не !empty() — да просто так ))) В данном контексте это взаимозаменяемые вещи. Просто по смыслу я проверяю именно факт "параметр указан", а не "параметр пустой". Отсутствие параметра как и ?id=0 приведет к одинаковому результату — данные не будут найдены. Обработка таких ситуаций за рамками данной темы. Когда не всё равно что использовать: isset() или !empty() ? Тогда, когда параметр равный 0 реально имеет смысл! Здесь есть логика, правда? А в вашем "ну ладно, я всё равно добавила isset" и еще пол-смайлика, логики нет. Удачи!
Про empty нужно помнить одну вещь: empty('') или empty('0') вернут true, т.ч. если для вас пустая строка или 0 тоже результат, то лучше в данном случае воспользоваться другим способом. И да, для empty() отсутствие переменной тоже является пустотой, а значит делать доп. проверки isset`ом нет необходимости. Короче, все зависит от ситуации, однозначных решений не бывает ) p.s. попов - зло.
моя логика основана на принципе выиграть по скорости всегда и во всем (поэтому и делаю себе базу) вот как выглядит код на самом деле у меня: Код (PHP): if (!isset($_POST['g-recaptcha-response']) || empty($_POST['g-recaptcha-response'])) { redirect(FUSION_SELF."?results=".$get_results."&id1=".$get_id1."&id2=".$get_id2."&id3=".$get_id3."&order=2"); } else { $google_url="https://www.google.com/recaptcha/api/siteverify"; $secret='6... вот капча http://rikki.xp3.biz/estate.php?results=1&id1=8&id2=0&id3=0 romach, спасибо, вот эти слова я искала
оставить только empty? на вашем форуме было про скорость обработки, как записать лучше? или скачивать https://github.com/google/recaptcha и устанавливать, можно обойтись передачей данных по url? не боитесь инъекций это классно я вот для чистки get использую тот самый индусский говнокод правда сразу по всем get один общий include-файл и привожу в нем к переменной вида $get_var, не знаю как по другому, в бесплатных cms только такой способ был обнаружен: Код (PHP): $get_type = ''; if (isset($_GET['type']) && !is_array($_GET['type']) && !empty($_GET['type'])) { $get_type = stripslash(trim($_GET['type'])); if (!isnum($get_type)) $get_type = ''; if (!array_key_exists($get_type, $arr_objectType)) $get_type = ''; }
Поддерживаю. п.с. ruRikki, подумайте хорошенько над Вашем будущем, - может сменить профессию, пока не поздно? Вполне возможно, что программирование это не Ваше. Тут требуется хорошее логическое мышление, а у Вас оно, эээ, пониженное, судя по этому топику. И в этом ничего страшного, просто Природа так распорядилась - кто-то не может быть художником, а кто-то программистом...
Chushkin, а я и не программист, делаю себе базу для внутреннего пользования, меньше всего боюсь чьего-то особенного мнения, может быть я не сумею доступно описать словами что делаю и для чего из за нехватки словарного запаса программистов, но на практике выведу как надо и даже лучше, да и не стесняюсь показать что чего то не знаю и спросить у другого, самое лучшее обучение это коммуникация а не зазубривание учебников, попробуйте выучить английский язык по одному учебнику? сколько вам как вы себя позиционируете супервундеркинду понадобится времени? год? а если общаться: 1 месяц, максимум 2
Да, я заметил что вы не стесняетесь спрашивать. Но вы не умеете случать что вам говорят... Добавлено спустя 1 минуту 20 секунд: Чем то напомнили эту притчу.
что по вашему не было услышано? про осла это вы про себя? начали про одно в итоге пришли к другому, или вы по прежнему будете настаивать на том что учитесь на чужих ошибках, а потом автора вместо благодарности еще и оговариваете или вы здесь кому то подлизнуть хотели?
вы про что. )) код приводился выше, а потом писалось что нельзя проверять не объявленную переменную)). И еще, этот кусок кода иллюстрация как возможно использовать isset() and empty() И еще, нельзя проверять не объявленную переменную методом empty() ведь речь была о empty(). Заметьте, никто вас с ослом не сравнивал. Добавлено спустя 3 минуты 5 секунд: Читать документацию это не книжки читать. Идите потратьте на это время. А то глупые вопросы даже после того как вам конкретные ответы дали.(про свои ответы я молчу)
вах вах вах mahmuzar, тут столько всего было написано за время вашего отсутствия... вот правильный ответ да возможно я не все поняла, потому что в том что написал artoodetoo целый учебник впихнут, я попыталась его поподробней расспросить, но он исчез, оно и понятно кто захочет крутые хакерские фишки в прямом эфире выкладывать, вы с вашим Чушкиным мне крупную дичь спугнули, теперь буду дальше индусский код шлепать по вашей вине, блин нет бы затихнуть и молча подглядывать, нет разбухтелись тут(((( капец вообще(((
правильный ответ вам давно дали. Вы просто не видите очевидное и не знаете что вам нужно. Добавлено спустя 1 минуту 12 секунд: что возвращает empty в тех или иных случаях тоже написано в доках. Вам оказывается надо было скзаать "эй, детка, слюшай миня, испoлзуй empty и все дела". :-D
Это капец. А я то надеялся, что не всё потеряно. Хотя ... может я зря так, может это просто троль. Если да, то он достиг своего, - молодец, хвалю.