Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Более краткая проверка/фильтрация переменной?
 
 автор: Akdmeh   (28.08.2010 в 12:39)   письмо автору
 
 

Представим, что есть код:
$test=isset($_POST['test']) ? $_POST['test'] : '';
То есть, этот метод позволяет записать переменную с post'а без ошибки. Можно конечно использовать $test=@$_POST['test']; , но как многие знают, @ довольно медленна, и вообще её рекомендуют не использовать. Глушить вывод ошибок вообще - не вариант, надо логгировать ошибки.

Вопрос - есть ли более краткий вариант для подобной проверки? Например, хотелось бы функцию типа: $test=if_isset($_POST['test'], ''); - если $_POST['test'] существует - вернуть его, иначе вернуть пустую строку. К сожалению, функции некорректно реагируют на то, если переменной не существует, и это также будет вызывать ошибки, если не использовать символ @.

Как можно сократить эту проверку? Или использовать @ и не любить себе мозг?;)

  Ответить  
 
 автор: Slo_Nik   (28.08.2010 в 13:05)   письмо автору
 
   для: Akdmeh   (28.08.2010 в 12:39)
 

Вам нужна проверка короче этой $test=isset($_POST['test']) ? $_POST['test'] : ''; ?
А чем Вас этот вариант не устраивает? Ведь при помощи тернарного оператора и так сокращается код. И выполняет то, что Вы хотите получить, только не возвращает, а присваивает значение $_POST['test'] переменной $test, если такое значение существует или пустую строку.

  Ответить  
 
 автор: nikita2206   (28.08.2010 в 17:29)   письмо автору
 
   для: Akdmeh   (28.08.2010 в 12:39)
 

Сделай так например:

<?php
class Input {
    public static function 
GET($key){
        return isset(
$_GET[$key]) ? $_GET[$key] : false;
    }
    public static function 
POST($key){
        return isset(
$_POST[$key]) ? $_POST[$key] : false;
    }
}

$test Input::GET('test');

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования