似乎無法找到問題的答案。我已經將$ user聲明爲全局變量,然後通過cookie(如果存在)或通過表單設置它,然後我稱之爲啓動函數。 在開始函數中我回顯了它的一部分,但我得到了未定義變量:即使我已經定義了它。未定義的變量:用戶
<?php
global $user;
function ConsoleLog($message)
{
echo '<script>console.log("' . $message. '")</script>';
}
if (isset($_COOKIE["user"])){
$user = unserialize($_COOKIE["user"]);
start();
}
else{
if (isset($_POST['submit']))
{
$user = array(
"name" => $_POST['name'],
"class" => $_POST['class'],
"school" => $_POST['school'],
);
$expire=time()+60*60*24*365;
setcookie("user",serialize($user), $expire);
start();
}
else
{
echo "Welcome new user!\n<br/>";
echo '<form method="post">
Name: <input type="text" name="name">
Class:<select name="class">
<option value="9">9</option>
</select>
School: <input type="text" name="school">
<input type="submit" name="submit">
</form>';
}
}
function start(){
echo "Your name: " . $user['name'] . "!\n<br/>";
echo "Your class: " . $user['class'] . "\n<br/>";
echo "Your school: " . $user['school'] . "\n<br/>";
?>
<hr/>
<h2>HomePage</h2>
<?php
}
?>
將$ user聲明爲主代碼中的普通變量;在你想訪問它的函數中使用'global' ....但是最好作爲函數參數傳遞 –
只是一個註釋:'submit'對於一個元素來說是'name'的一個糟糕的選擇。如果你將來使用這些庫,它會導致像jquery這樣的圖書館出現很多問題。 –
@MarkBaker應作爲回答發佈而不是評論。 –