您所在的位置:首页 / 知识分享

php非法字符串偏移

2023.04.06

455

ytj

php非法字符串偏移

你试图访问一个string就好像它是一个数组,有一个键-string. string不会明白的。在代码中,我们可以看到问题所在:"hello"["hello"];// PHP Warning:  Illegal string offset 'hello' in php shell code on line 1"hello"[0];

// No errors.array("hello" => "val")["hello"];// No errors. This is *probably* what you wanted.纵深让我们看看这个错误:警告:非法字符串偏移“端口”在.。上面写着什么?上面说我们要用字符串'port'作为字符串的偏移量。就像这样:$a_string = "string";// This is ok:echo $a_string[0]; // secho $a_string[1]; // techo $a_string[2]; // r// ...

// !! Not good:echo $a_string['port'];// !! Warning: Illegal string offset 'port' in ...这是什么原因?因为某种原因你期望array,但你有一个string..只是搞混了。也许你的变量被改变了,也许它从来不是array,这真的不重要。我们能做些什么?如果我们知我们应该有一个array,我们应该做一些基本的调试,以确定为什么我们没有array..如果我们不知道我们会不会array或string事情变得更棘手了。我们能,会,可以做的是各种各样的检查,以确保我们没有通知,警告或错误的事情is_array和isset或array_key_exists:$a_string = "string";$an_array = array('port' => 'the_port');if (is_array($a_string) && isset($a_string['port'])) {

    // No problem, we'll never get here.

    echo $a_string['port'];}if (is_array($an_array) && isset($an_array['port'])) {

    // Ok!

    echo $an_array['port']; // the_port}if (is_array($an_array) && isset($an_array['unset_key'])) {

    // No problem again, we won't enter.

    echo $an_array['unset_key'];}// Similar, but with array_key_existsif (is_array($an_array) && array_key_exists('port', $an_array)) {

    // Ok!

    echo $an_array['port']; // the_port}有一些微妙的区别isset和array_key_exists..例如,如果$array['key']是null, isset回报false. array_key_exists会检查一下,好吧,钥匙存在.

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

相关新闻

让人头疼的python 编码问题!!!

2018.10.29

0

中文编码问题是用中文的程序员经常头大的问题,在python下也是如此,那么应该怎么理解和解决python的编码问题呢?

让人头疼的python 编码问题!!!

2018.10.29

0

中文编码问题是用中文的程序员经常头大的问题,在python下也是如此,那么应该怎么理解和解决python的编码问题呢?

让人头疼的python 编码问题!!!

2018.10.29

0

中文编码问题是用中文的程序员经常头大的问题,在python下也是如此,那么应该怎么理解和解决python的编码问题呢?