Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中的Isset函数通知_Php_Isset - Fatal编程技术网

php中的Isset函数通知

php中的Isset函数通知,php,isset,Php,Isset,下面的代码抛出一个通知 (!)注意:未定义索引:第55行C:\xampp\htdocs\WilliesFishing\admin\product\index.php中的product_id 我检查了,我在第55行,但它不喜欢isset() 我还尝试了if(isset($\u GET['product\u id']);,它抛出了相同的错误。这不应该奏效吗 case 'show_add_edit_form': if (isset($product_id)) { $produc

下面的代码抛出一个通知

(!)注意:未定义索引:第55行C:\xampp\htdocs\WilliesFishing\admin\product\index.php中的product_id

我检查了,我在
第55行
,但它不喜欢
isset()

我还尝试了
if(isset($\u GET['product\u id']);
,它抛出了相同的错误。这不应该奏效吗

case 'show_add_edit_form':
    if (isset($product_id)) {
        $product_id = $_GET['product_id'];
    } else {  
        $product_id = $_POST['product_id']; // --> Line #55
    }

$\u GET
$\u POST
都没有名为
product\u id
的索引。您的
isset
行仅检查是否设置了全局变量
$product\u id
,这可能并不意味着与
$\u GET
和/或
$\u POST
的状态有关。您可能希望这样做tead:

if (isset($_GET['product_id')) {
    $product_id = $_GET['product_id'];
} else if (isset($_POST['product_id')) {
    $product_id = $_POST['product_id'];
} else {
    // provide a reasonable default, or otherwise handle the edge-case, in here
}

您应该在get参数上使用isset。类似如下:

 if (isset($_GET['product_id'])) {
     $product_id = $_GET['product_id'];
 }
 else if (isset($_POST['product_id'])) {  
     $product_id = $_POST['product_id'];
 }

错误告诉您这一点,因为$\u GET['product\u id']没有值。因此,不要使用$product\u id。请在条件中使用请求参数,而不要使用

请提供引发通知的确切行。如果使用isset($product\u id),如果我们没有在isset()之前初始化一个有效值,我用导致ITIT的行更正了上面的代码,请注意在使用try@isset($product_id)之前先初始化valible@刘庆虎建议有人在他们的代码中引入错误抑制是一个糟糕的建议。@vascowhite使用错误抑制是一个简单而粗糙的方法。@user3562189会更好。出于某种原因,他们仍然发出同样的通知。再试一次-在我的第二篇
$\u POST
中缺少一个,我不小心键入了
$POST
(如果你在
中检查的内容与你读到的内容不同,那么你在
中检查的内容也会与你读到的内容不同)。太棒了,我本应该抓住它的。我想我不明白为什么isset在这种情况下不起作用,因为你没有检查
$\u POST['product\u id']
是在尝试读取之前设置的。您的代码检查的唯一内容是
$product\u id
,因此当您阅读
$\u POST['product\u id']
时,您是从一个不存在的索引中读取的。