PHP错误提醒

SJY发表于:2018年06月02日 12:14 • 阅读:

Notice: Use of undefined constant id - assumed 'id'
大概意思
使用未定义的常量id,假定为字符id
导致原因
没有给数组的索引加上单引号或双引号,PHP解析为未定义的常量,用在这里,把他假定为字符串id,完整的就是假定为$_GET['id']
如:$_GET[id];
解决方案
加上引号就可以了



Notice: Undefined index: id大概意思
未定义的索引 id
导致原因
直接填写带索引的数组,却没有定义该数组的索引
如:$_GET['id']、$_POST['id']、$abc['id']
解决方案
方案1:给数组的指定索引赋值,如

 $_GET['id']='';



方案2:用isset语句判断该值是否存在,只有存在时才把它赋值给一个变量,如

if(isset($_GET['id']))$myid=$_GET['id'];

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING 
大概意思
语法错误,未预料到的 T_ENCAPSED_AND_WHITESPACE (翻译不出来,抱歉),期待 字符串,或变量,或数字字符导致原因
把指定索引的数组赋值给一个变量时,用双引号括起来了,如
$abc="$_GET['id']";
如果仅仅是那么简单,去掉双引号就可以了,但很多时候不得不加上双引号,比如作为SQL查询时,某个字段的值必须用引号括起来,如

$sql="SELECT * FROM `$table` WHERE `id`='$_GET['id']'";

因为里面有变量$table,所以赋值时最外面必须是双引号;那么这里的$_GET['id']就只能用单引号把他括起来了,不要以为把索引的引号改成双引号就完事了,一样报错,不信你试试

$sql="SELECT * FROM `$table` WHERE `id`='$_GET["id"]'";

解决方案
方案1:用连接符来连接字符串和变量,下面字符串部分用双引号括起来,然后用点连接符连接$_GET[id] 再用点连接符连接后面部分的字符串

$sql="SELECT * FROM `$table` WHERE `id`='".$_GET['id']."'";



方案2:把变量用{}包含起来,简洁多了吧

$sql="SELECT * FROM `$table` WHERE `id`='{$_GET['id']}'";

 

欢迎转载,但请保留原文地址 http://www.sjyhome.com/php/1386.html

回复(0)