PHP您可能也会掉入的坑
Jun 13, 2016 am 11:35 AM
PHP你可能也会掉入的坑
今天被人问:
$var = 'test';if (isset($var['somekey'])){ echo 'reach here!!!';}
会不会输出'reach here!!!'? ---当然不会啊。我想也没想就答。
果然,我掉坑里了!会输出的!如果你没掉坑里,那么恭喜你,你也不用往下看了。
现在,让我们来分析一下。既然 isset 了,那么值到底是什么呢?我们把它打印出来:
var_dump($var['somekey']);//=>output: string(1) "t"
因为变量$var是一个字符串,学过C语言的话就知道它是char类型的数组,所以我们可以用 $var[0] $var[1] $var[$i]...取到 $var 的第 $i+1 个字符。那么刚才的 'somekey' 为什么取到的是第一个字符呢?这是因为php在这里做了隐式的类型转换,将这里的字符串转换成int型。你试过intval('somekey')函数的话就知道得到的就是0,所以 $var['somekey']最终就是 $var[0]了。最后,得到了 't'。
完。

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP ermittelt, ob ein angegebener Schlüssel in einem Array vorhanden ist

Die Rolle und Beispiele des Schlüsselworts var in PHP

18 Möglichkeiten, das Problem zu beheben, dass der Audiodienst unter Windows 11 nicht reagiert

So binden Sie den Domänennamen und legen das Stammverzeichnis auf den Nginx-Server fest

Lassen Sie uns über die Unterschiede zwischen var, let und const sprechen (Codebeispiel)

Lösung für den Fehler AttributeError(\'{0!r} object has no attribute {1!r}\'.format(type(self).__name__, k))

Über tausend Android-Apps haben heute den Weg zu Windows 11 gefunden
