許せない心理テスト

phpを使ってサイトの作成を行っているのですが、そのまま変数をセットすると何もない時に、何もないよのエラーが表示されてしまいます。

そこでデータがあった場合には表示、なかった場合には表示しないしエラーも出さないために、issetなるものを使って、うまく表示できているようなのですが、YES,NOの判断の場合、もう少し簡単に書けるような方法があるみたいなのですが、うまくわからず…。

<?php
if (isset($_POST["name"])) {
echo $_POST["name"];
}
?>

このような感じでPOSTにデータがあった場合には表示させています。
もう少し簡単に書く方法がありましたらご教授頂けないでしょうか、宜しくお願いいたします。

A 回答 (3件)

> 三項演算子みたいな書き方


少々意味合いが異なりますが、Null 合体演算子という手があります
例)
echo $_POST['name'] ?? '';
参考)
https://www.php.net/manual/ja/language.operators …
    • good
    • 0
この回答へのお礼

有難うございます、こういった書き方があるのですね、大変参考になりました!

お礼日時:2022/11/17 18:40

POSTから取得するには、filter_inputを使います。


$name = filter_input(INPUT_POST, "name");
値を取得するだけなら、ifも三項演算子も不要。

が、「値があれば表示」という判断をするのであれば、ifを書かざるを得ない。
if(! is_null($name)) {
echo htmlspecialchars($name, ENT_QUOTES, "UTF-8");
}
    • good
    • 0

<?php


$e = function($n){ if(isset($_POST[$n])) echo $_POST[$n]; };
$e('name');
    • good
    • 0
この回答へのお礼

有難うございます。
意外と長くなってしまうのですね?
関数使わずに、三項演算子みたいな書き方ができればと思いますが、無理ならそのままの書き方で進めたいと思います。見た目もその方が慣れていますので!

お礼日時:2022/11/16 21:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報