-4

「typeof」javascript 検証 (javascript で未定義の変数をチェックするために行うこと) は、PHP vars と同じように機能しないのでしょうか?

そうです

alert(typeof <? echo $_SESSION['thing'] ?>);

そして、これは実行さえしません(少なくとも空白としてポップアップすると思います)

でももしそうなら

alert(<? echo $_SESSION['thing'] ?>);

アラートには「未定義」と表示されます

javascriptを使用して未定義のPHP変数をチェックする正しい方法は、それらを単にエコーすることでしょうか? そうでない場合は訂正してください。そうでない場合は、共有するとよいと思います。

ありがとう

4

5 に答える 5

1
if(isset($_SESSION['thing'])) {
   echo 'thing is set';
} else {
   echo 'thing is not set';
}

これは、変数が設定されているかどうかを確認する PHP の方法です。

http://uk.php.net/isset

編集:

JavaScript で PHP 変数をチェックしたい場合は、次のようにします。

<?php
echo '<script type="text/javascript">alert("'.(isset($variable) ? $variable : 'Undefined Variable').'");</script>';
?>

上記のコードは、変数が PHP で設定されているかどうかをチェックします。設定されている場合echoはアラート ステートメントに出力されます。設定されていない場合は、代わりに空白の値が警告されます。

于 2012-05-22T20:09:32.730 に答える
1

JavaScript には PHP 変数のようなものはありません。

PHP が行っているのは、JavaScript の出力テキストを「構成」することです。

「ソースを表示」をクリックして、PHP がまとめた最終的なテキストを見てください。

@Chief17の回答に追加すると、次のことがわかりました。

var x_string_val = "<?php echo ((isset($value) AND !empty($value)) ? $value : $default) ?>";
var x_any = <?php echo ((isset($value) AND !empty($value)) ? $value : $default) ?>;
var x_type = typeof(<?php echo ((isset($value) AND !empty($value)) ? $value : $default) ?>);

PHP から引用符を出力するか、文字列の場合は JavaScript で値を引用符で囲んでください。そうしないと、より多くのエラーが発生する可能性があります。

于 2012-05-22T20:09:36.403 に答える
0

何が起こるか考えてみてください。PHPはサーバー上で実行されます。PHPステートメントのresultは、クライアントに送信されるHTML/JavaScriptに挿入されます。

したがって、セッション変数にが含まれているFoo場合、結果は次のようになります。

alert(typeof Foo);

alert(Foo);

ご存知かもしれませんが、Fooはクライアント側のJavaScriptのコンテキストでは定義されていません。

于 2012-05-22T20:11:39.577 に答える
-1

変数をjavascript変数に割り当てる必要があります。PHPがレンダリングされた後にHTMLソースを見ると、おそらく次のようなものが表示されます。

alert(typeof some value for thing);

これは構文エラーになります。

代わりにこれを行う

var thing = "<?php echo $_SESSION['thing']; ?>";
alert( typeof thing );
于 2012-05-22T20:10:32.307 に答える
-2
alert(typeof <? echo $_SESSION['thing'] ?>);

これは構文が悪いです-そうあるべきですalert(typeof(some_variable))

alert(<? echo $_SESSION['thing'] ?>);

これは次のようになります

alert("<?php echo $_SESSION['thing']; ?>");

そして、jsは異なる言語の変数をどのように使用することになっているので、あなたがやろうとしていることは意味がありませんか?oO

于 2012-05-22T20:09:54.123 に答える