2012-06-15 3 views
-1

Есть ли способ объединить функцию if и функцию isset (или другие функции) в одну функцию.Объединение if & isset в одну функцию

Например:

if(isset($_GET['test'])){ 
    echo "It exists"; 
} 

в

exitsts($_GET['test']){ 
    echo "It exists"; 
} 

Я искал на Google и StackOverflow и использовали несколько способов, чтобы описать его. Но никакого решения.

Так есть решение для этого?

Заранее благодарен!

Брэм Молот

+8

Почему? Зачем? Зачем? Зачем? –

ответ

3

Нет, это не возможное. Если это не функция, а синтаксический элемент. Обычно в большинстве языков программирования у вас есть функции, которые принимают значения и возвращают значения (и, возможно, делают что-то за спиной в процессе) и элементы синтаксиса, которые могут использоваться для структурирования кода и вести себя определенным образом, например, разветвление (if-then-else), цикл (для, while и т. д.). Различие в большинстве языков прост: если у него есть блок кода за ним, то это синтаксический элемент, если он каким-то образом называется, это функция. Однако это может быть неверно для всех языков.

Как правило, невозможно добавить собственные синтаксические элементы, если язык явно не допускает его через некоторые средства метапрограммирования, такие как макросы или другие мощные инструменты, используемые для расширения языка. Насколько я знаю, PHP не предлагает таких инструментов. Один из способов получить их для языков, которые не предлагают их из коробки, - использовать дополнительный препроцессор, такой как M4. Однако это редко бывает полезно.

Некоторые языки также позволяют обрабатывать блоки кода как значения, поэтому в этом случае вы можете использовать функции аналогично синтаксическим элементам, передавая им код, который еще не был оценен. Если блоки кода не могут использоваться напрямую, возможно, язык предлагает анонимные функции или анонимные классы, которые можно использовать для имитации этого. Однако обычно эти моделируемые управляющие структуры не так красивы, как встроенные структуры управления. Я не уверен, разрешает ли PHP анонимные функции или классы, вы можете построить что-то вроде структуры, которую хотите, но это будет выглядеть очень уродливо.

+0

Спасибо за информацию. Это также ответило на вопрос. –

2

создать пользовательскую функцию:

function exitsts($var){ 
     if(isset($var)){ 
      return "It exists"; 
     } 
     else{ 
      return "doesn't exsits"; 
     } 
    } 

затем сделать чек:

echo exitsts($_GET['test']); 
+0

Лучшее решение для того, что вы хотите сделать. – Jeremy1026

+0

получил следующую ошибку: 'Ошибка анализа: ошибка синтаксиса, неожиданная '{' в C: \ wamp \ hammerbz \ mittam \ index.php в строке 36' –

+0

Должно быть:' if (exitsts ($ _ GET ['test '])) { echo "Он существует"; } ' – Zbigniew

0

Существует, используйте пустой

if(!empty($_GET['test'])){ 
    /* matches 
    "" (an empty string) 
    0 (0 as an integer) 
    0.0 (0 as a float) 
    "0" (0 as a string) 
    NULL 
    FALSE 
    array() (an empty array) 
    var $var; (a variable declared, but without a value in a class) 
    */ 
} 
+1

OP хочет удалить 'if' и' isset'. У вашего ответа все еще есть 'if'. – flowfree

Смежные вопросы