2013-11-29 3 views
0

У меня есть некоторый код (несколько) проверка данных формы, в следующем порядке:PHP Validation Форма размещения

<!DOCTYPE html><html><body> 
<?php 

$name = ""; // define variables and set to empty values 

if ($_SERVER["REQUEST_METHOD"] == "POST") 

{ $name = thresh($_POST["name"]); } // line 8 

function thresh($data) // Go Katniss!! 
{ 
$data = trim($data); 
$data = stripslashes($data); 
$data = htmlspecialchars($data); 
return $data; } ?> 

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
Name: <input type="text" name="name"><br><br>  
<input type="submit" name="submit" value="Submit"> </form> 

<?php 
echo $name."<br>"; echo $email; ?> 
</html></body> 

Но молотить() определяется после она называется (или я ошибаюсь). thresh ($ name) должен возвращать undefined в строке 8, но это не так. Это потому, что это (это?) Выражение функции? Как делает моя программа php интерпретирует этот код?

+0

Возможный дубликат [PHP Function Call Placement] (http://stackoverflow.com/questions/4368088/php-function-call-placement) –

+0

Да, я собирался удалить его, когда Фритс ответил :( – user3048961

+0

Почему это ссылка не отображалась во время написания программы, я понятия не имею. – user3048961

ответ

1

Как и в большинстве языков, функции поднимаются. С точки зрения мирян: вы можете вызвать функцию, даже если она определена ниже на странице. В этом отношении особое внимание уделяется функциям.

Это относится и к классам.

+0

для классов это неверно во всех случаях: [специальный случай] (http://php.net/manual/en/keyword.class. php # 108678) – bitWorking

+0

Я уверен, что 'exit' оказывает аналогичное влияние на функции? – Halcyon

+0

nope..it works:' test(); exit; function test() {echo 'test';} ' – bitWorking

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