有人能解釋一下這兩個語句之間的區別PHP的作用不同:與「回聲」
<form method="post" action="<?php htmlspecialchars($_SERVER['PHP_SELF']); ?>">
和
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
我沒有看到行爲上的差異。
有人能解釋一下這兩個語句之間的區別PHP的作用不同:與「回聲」
<form method="post" action="<?php htmlspecialchars($_SERVER['PHP_SELF']); ?>">
和
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
我沒有看到行爲上的差異。
區別很簡單。
如果代碼不打印任何東西,則第一件。
<form method="post" action="<?php htmlspecialchars($_SERVER['PHP_SELF']); ?>">
所以action
參數是空的,並且默認瀏覽器表單提交給同一個網站,有什麼可能會是相同的值htmlspecialchars($_SERVER['PHP_SELF']);
回報。
如果您使用第二段代碼,htmlspecialchars($_SERVER['PHP_SELF']);
的回報將被迴應,並且瀏覽器將表單提交到同一站點,如上所述。
例
如果您的網站被稱爲form.php
。代碼的第一件會產生:
<form method="post" action="">
瀏覽器看到的動作是空的,表單數據發送到該網站,form.php
而第二段會產生:
<form method="post" action="form.php">
你能解釋爲什麼第一個返回action =「」? htmlspecialchars的返回是一個字符串。所以它應該是action =「
的htmlspecialchars返回一個字符串的組合,但你需要一個funtction寫這個返回值了(如回聲)。 PHP函數的返回不會自動寫出。另一個例子:嘗試做一個簡單的計算,你會看到結果不會顯示,直到你使用回聲。 – idmean
謝謝你解釋它。 – user3236820
第一個例子會輸出,因爲htmlspecialchars
不輸出任何東西,它只是返回處理後的內容。
<form method="post" action="">
這將簡單地提交表單到當前頁面。
第二個例子將輸出類似
<form method="post" action="page.php">
哪裏page.php
是當前腳本(見here)。
由於空白操作會將表單提交到當前頁面,並且使用您的echo
語句將打印出一條到當前頁面的路徑,則兩者會導致相同的結果。
如果您如果沒有迴應,表單會被髮布到同一頁面,因爲沒有定義動作,所以你可以將動作屬性留空或者根本不要聲明... –
@Mr。外國人。我不明白你的回覆。請澄清你的意思是「沒有定義行動」。 – user3236820
在第一種情況下,輸出將是'action =「」'在第二個'action =「path/on/server」'中。回聲將顯示價值,沒有回聲它贏得了輸出 – MSadura