Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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:包含语句中的三元运算符,变量未定义_Php_Variables_Include_Ternary Operator - Fatal编程技术网

PHP:包含语句中的三元运算符,变量未定义

PHP:包含语句中的三元运算符,变量未定义,php,variables,include,ternary-operator,Php,Variables,Include,Ternary Operator,我正在检查一个包含语句中带有三元运算符的变量,但该变量未定义: <?php include('../partials/' . isset($altnav) ? $altnav . '.php' : '_nav.php'); ?> 操作顺序。将三元运算括在括号中: include('../partials/'.(isset($altnav) ? $altnav.'.php' : '_nav.php')); 如果没有括号,它会在检查前将“../partials/”连接到isset($

我正在检查一个包含语句中带有三元运算符的变量,但该变量未定义:

<?php include('../partials/' . isset($altnav) ? $altnav . '.php' : '_nav.php'); ?>

操作顺序。将三元运算括在括号中:

include('../partials/'.(isset($altnav) ? $altnav.'.php' : '_nav.php'));

如果没有括号,它会在检查前将“../partials/”连接到isset($altnav)的结果?三元运算符。

由于另一个答案中所示的运算符优先级,您的代码没有达到预期效果,但假设您使用三元运算符是为了简洁起见,下面还有几点

  • 可以省略外圆括号
    include
    不是一个函数,因此它们不是必需的

  • 对此,不需要使用三元运算符

  • include('../partials/'.(isset($altnav) ? $altnav.'.php' : '_nav.php'));
    
    include '../partials/' . ($altnav ?? '_nav')  . '.php';