首頁 後端開發 php教程 PHP您可能也会掉入的坑

PHP您可能也会掉入的坑

Jun 13, 2016 pm 12:37 PM
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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP判斷某個數組中是否存在指定的key PHP判斷某個數組中是否存在指定的key Mar 21, 2024 pm 09:21 PM

這篇文章將為大家詳細講解有關PHP判斷某個數組中是否存在指定的key,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP判斷某個陣列中是否存在指定的key:在php中,判斷某個陣列中是否存在指定的key的方法有多種:1.使用isset()函數:isset($array["key"])此函數傳回布林值,如果指定的key存在,則傳回true,否則傳回false。 2.使用array_key_exists()函數:array_key_exists("key",$arr

一起聊聊var、let以及const的差異(程式碼範例) 一起聊聊var、let以及const的差異(程式碼範例) Jan 06, 2023 pm 04:25 PM

這篇文章為大家帶來了關於JavaScript的相關知識,其中主要為大家介紹了var、let以及const的區別有哪些,還有ECMAScript 和JavaScript的關係介紹,有興趣的朋友一起來看一下吧,希望對大家有幫助。

nginx伺服器怎麼綁定網域名稱和設定根目錄 nginx伺服器怎麼綁定網域名稱和設定根目錄 May 13, 2023 pm 09:10 PM

nginx伺服器綁定網域名稱以及設定根目錄非常方便,首先進入nginx安裝目錄,然後執行vimconf/nginx.conf開啟nginx的設定文件,找到server{    .....      }這個程式碼段,這.....      }這個程式碼段,這段程式碼就是用來設定對應網站的,首先我們應該在網域控制面板將網域名稱解析到我們伺服器的ip位址,然後綁定才可以生效先在我們的程式碼區段中找到server_name這一項然後把後面的網域改成我們要綁定的網域名稱即可root這一項就是指定的根目錄,設定成我們指定的目錄即可如果我們想綁定多個網域怎

在 Windows 11 上修復音訊服務無回應問題的 18 種方法 在 Windows 11 上修復音訊服務無回應問題的 18 種方法 Jun 05, 2023 pm 10:23 PM

音訊輸出和輸入需要特定的驅動程式和服務才能在Windows11上按預期工作。這些有時最終會在後台遇到錯誤,從而導致音訊問題,如無音訊輸出、缺少音訊設備、音訊失真等。如何修復在Windows11上沒有回應的音訊服務我們建議您從下面提到的修復開始,並逐步完成列表,直到您設法解決您的問題。由於Windows11上的多種原因,音訊服務可能無法回應。此清單將幫助您驗證和修復阻止音訊服務在Windows11上回應的大多數問題。請按照以下相關部分幫助您完成流程。方法一:重啟音訊服務您可能會遇

PHP中var關鍵字的作用與範例 PHP中var關鍵字的作用與範例 Jun 28, 2023 pm 08:58 PM

PHP中var關鍵字的作用和範例在PHP中,var關鍵字用來聲明一個變數。在先前的PHP版本中,使用var關鍵字是宣告成員變數的慣用方式,現在不再建議使用。然而,在某些情況下,var關鍵字依然會被使用。 var關鍵字主要用於宣告一個局部變量,並且會自動將該變數標記為局部作用域。這意味著該變數僅在當前的程式碼區塊中可見,並且不能在其他函數或程式碼區塊中存取。使用var

報錯AttributeError(\'{0!r} object has no attribute {1!r}\'.format(type(self).__name__, k))的解決 報錯AttributeError(\'{0!r} object has no attribute {1!r}\'.format(type(self).__name__, k))的解決 Feb 29, 2024 pm 06:40 PM

錯誤的原因這個錯誤訊息表明,在python程式碼中,使用了一個物件(由self變數表示),但是該物件沒有一個名為k的屬性。這可能是由於該物件沒有定義這個屬性,或者是在程式碼中類型錯誤導致該物件不是預期的類型。如何解決要解決這個錯誤,可能需要進行以下操作之一或多個:檢查程式碼中的錯誤,確保self變數引用的物件具有名為k的屬性。檢查程式碼中的型別錯誤,確保self變數所引用的物件是預期的型別。如果是缺少屬性的話,需要在類別裡定義這個屬性使用tryexcept來取得這個錯誤如果確定了k是類別裡沒有定義的屬性,請確

let var const代表什麼意義 let var const代表什麼意義 Nov 14, 2023 pm 03:00 PM

llet、var、const分別代表區塊作用域變數、函數作用域變數和常數。詳細介紹:1、let,用於聲明一個塊作用域的變量,使用let聲明的變量不能在它被聲明之前被訪問,這就是所謂的暫時性死區;2、var,用來聲明變量的關鍵字,宣告的變數是函數作用域或全域作用域的,不受區塊級作用域的限制;3、const,用來宣告一個常數,一旦被賦值就不能再重新賦值的變量,值在宣告後不能被修改等。

CentOS 系統的磁碟空間佔用情況查詢 CentOS 系統的磁碟空間佔用情況查詢 Feb 20, 2024 am 08:09 AM

指令介紹使用df-h指令查看各個檔案系統的總容量和已使用容量。您的輸出顯示/dev/mapper/centos-root佔用了47%的空間,也就是36G。使用du-h-x–max-depth=1/指令查看根目錄下各子目錄的大小。您可以根據輸出找出佔用空間較大的目錄,例如/var,/home,/usr等。您可以透過執行指令du-h-x--max-depth=1/var來查看/var目錄下各個子目錄的大小。繼續這個過程,直到找到佔用空間較大的檔案或目錄。文章推薦https://blog.csdn.n

See all articles