三目运算符 notice 提示

WBOY
풀어 주다: 2016-06-20 12:52:39
원래의
1383명이 탐색했습니다.

$act = isset($_POST['act']) ? $_POST['act']:(isset($_GET['act']) ? $_GET['act']:'login');
로그인 후 복사


上面代码 最后一个三目运算符 为什么一定加小括号括起来,如果不括起来 就会出现notice错误


回复讨论(解决方案)

不存在你说的现象

Notice: Undefined index: act in C:\Users\John\Desktop\shop\admin\privilege.php on line 3


至少是你没有反映这是情况

这个怎么个回事?怎么会报一个notice呢?

你是说我 #3 的截图?
第二行 $act 未赋值就直接使用(echo $act;),那自然是要报 notice 的
但第三行并没有你要添加的括号,却也没有报 notice

我这样做是为了证明:我并没有屏蔽掉 notice 级别错误

我也没有用@屏蔽错误呢 怎么加了括号就没有naotice错误 没加括号就有。

没有问题。
估计你提供的代码不完整,那个notice是其他地方的。

<?phpini_set('display_errors','on');error_reporting(E_ALL);$act = isset($_POST['act']) ? $_POST['act']:(isset($_GET['act']) ? $_GET['act']:'login');$act = isset($_POST['act']) ? $_POST['act']:isset($_GET['act']) ? $_GET['act']:'login';?>
로그인 후 복사

还是不知道原因, 没加括号就notice 说这个变量 没定义,我又var_dump 了下 这个act也有数据呢:
array(4) { ["act"]=> string(6) "signin" ["username"]=> string(0) "" ["password"]=> string(0) "" ["captcha"]=> string(0) ""

我换成这样就没事了

$act = isset($_REQUEST['act']) ? $_REQUEST['act']:isset($_REQUEST['act']) ? $_REQUEST['act']:'login';
로그인 후 복사


都统一 $_REQUEST

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!