PHP您可能也会掉入的坑

Jun 13, 2016 am 11:35 AM
here isset var

PHP你可能也会掉入的坑

今天被人问:

$var = 'test';if (isset($var['somekey'])){    echo 'reach here!!!';}
ログイン後にコピー

会不会输出'reach here!!!'? ---当然不会啊。我想也没想就答。

果然,我掉坑里了!会输出的!如果你没掉坑里,那么恭喜你,你也不用往下看了。

现在,让我们来分析一下。既然 isset 了,那么值到底是什么呢?我们把它打印出来:

var_dump($var['somekey']);//=>output:  string(1) "t"
ログイン後にコピー
是字符't',就是 $var 的第一个字符,到这里想明白了吗?

因为变量$var是一个字符串,学过C语言的话就知道它是char类型的数组,所以我们可以用 $var[0] $var[1] $var[$i]...取到 $var 的第 $i+1 个字符。那么刚才的 'somekey' 为什么取到的是第一个字符呢?这是因为php在这里做了隐式的类型转换,将这里的字符串转换成int型。你试过intval('somekey')函数的话就知道得到的就是0,所以 $var['somekey']最终就是 $var[0]了。最后,得到了 't'。

完。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPは、指定されたキーが配列内に存在するかどうかを判断します PHPは、指定されたキーが配列内に存在するかどうかを判断します Mar 21, 2024 pm 09:21 PM

PHPは、指定されたキーが配列内に存在するかどうかを判断します

PHP における var キーワードの役割と例 PHP における var キーワードの役割と例 Jun 28, 2023 pm 08:58 PM

PHP における var キーワードの役割と例

Windows 11でオーディオサービスが応答しない問題を修正する18の方法 Windows 11でオーディオサービスが応答しない問題を修正する18の方法 Jun 05, 2023 pm 10:23 PM

Windows 11でオーディオサービスが応答しない問題を修正する18の方法

ドメイン名をバインドし、ルートディレクトリをnginxサーバーに設定する方法 ドメイン名をバインドし、ルートディレクトリをnginxサーバーに設定する方法 May 13, 2023 pm 09:10 PM

ドメイン名をバインドし、ルートディレクトリをnginxサーバーに設定する方法

var、let、const の違いについて話しましょう (コード例) var、let、const の違いについて話しましょう (コード例) Jan 06, 2023 pm 04:25 PM

var、let、const の違いについて話しましょう (コード例)

エラーの解決策 AttributeError(\'{0!r} object has noattribute {1!r}\'.format(type(self).__name__, k)) エラーの解決策 AttributeError(\'{0!r} object has noattribute {1!r}\'.format(type(self).__name__, k)) Feb 29, 2024 pm 06:40 PM

エラーの解決策 AttributeError(\'{0!r} object has noattribute {1!r}\'.format(type(self).__name__, k))

let var const とはどういう意味ですか? let var const とはどういう意味ですか? Nov 14, 2023 pm 03:00 PM

let var const とはどういう意味ですか?

今日、1,000 を超える Android アプリが Windows 11 に移行しました 今日、1,000 を超える Android アプリが Windows 11 に移行しました May 09, 2023 pm 07:01 PM

今日、1,000 を超える Android アプリが Windows 11 に移行しました

See all articles