私はこれを試しています:
if( ! isset( $_SESSION['type'] ) and !$_SESSION['type'] == "0")
{
echo "something";
}
私は出力を取得します:
注意: 未定義のインデックス: 32 行目に x:\xxx\xxx\xxx.php と入力します
どうすればこれを修正できますか?
私はこれを試しています:
if( ! isset( $_SESSION['type'] ) and !$_SESSION['type'] == "0")
{
echo "something";
}
私は出力を取得します:
注意: 未定義のインデックス: 32 行目に x:\xxx\xxx\xxx.php と入力します
どうすればこれを修正できますか?
存在しない配列キーから読み込もうとすると、PHP は警告 (通知) を発行します。isset()
警告を発しません。
if
ただし、 type キーが設定されていない場合はの後半が実行されるため、「type」が設定されていない場合、コードはそれを行うことが保証されています。
あなたが達成しようとしていることは不明です。おそらくあなたは次のようなことを意味します:
if (!isset($_SESSION['type']) || $_SESSION['type'] == '0')
{
echo "something";
}
しかし、理想的には、次のようにします。
if (!isset($_SESSION['type']))
{
$_SESSION['type'] = '0'; // set default value
}
これで、残りのコードはそれが存在すると仮定できます。
この答えは良いアプローチだと思います:
if( isset( $_SESSION['type'] ) && ( !$_SESSION['type'] == "0")) {
echo "something";
}
これは、セッション変数の型が設定されていてゼロに等しくない場合、エコーすることを意味しています。これはあなたが探しているものですか?
( isset( $_SESSION['type'] ) == false || $_SESSION['type'] != "0") ? 'something' : '';