簡體   English   中英

PHP如何確定變量是數組還是字符串?

[英]How does PHP determine whether a variable is an array or a string?

我對PHP如何確定變量是字符串還是數組感到困惑。 它似乎取決於所使用的運算符。

這是一個例子:

<?php
$z1 = "abc";
$out = "";
for ($i = 0; $i < strlen($z1); $i++)
{
    // $out[$i] = $z1[$i]; 
    $out = $out.$z1[$i];
}
print $out;
?>

在以上版本中, $out變成一個字符串( print $z1顯示“ abc”)。 但是,如果我使用第一行$out[$i] = $z1[$i]; $out變成一個數組。

有人可以說明為什么會發生這種情況,以及是否有可能在不將輸出轉換為數組的情況下使用方括號訪問字符串的字符嗎?

PHP中的字符串定義被認為是以線性格式寫入的一組數據(即: $var = "username=SmokeyBear05,B-day=01/01/1980";

但是,數組是將數據分為幾部分的集合。 如果可以的話,這是一種列表格式。 舉例來說,我已經將數據字符串從以前寫入了數組格式...

Array(['username']=>"SmokeyBear05", ['B-day']=>"01/01/1980")

現在通常將字符串定義為:$ var =“ Your String”; 但是,可以用三種不同的格式來寫數組:

$var1 = array('data1','data2','data3');
$var2 = array('part A'=>'data1','part B'=>'data2','part C'=>'data3');

var1的輸出將索引值從0開始。但是var2的輸出將設置自定義索引值。 現在,寫數組的第三種方法(最不常用的格式)是這樣的:

$var[0]="data1";
$var[1]="data2";
$var[2]="data3";

這需要更多的工作,但可以設置索引。

大多數使用PHP的Web開發人員會將來自外部源的數據設置為字符串,以將其傳遞到另一個PHP腳本,然后使用explode()函數將其分解為一個數組。

當您定義變量$out = ""for循環無法將該變量理解為字符串值。 如果設置$out[$i]值,則默認情況下會將其視為數組。

如果要以字符串值獲取輸出結果,則可以定義$out = "a"以確保它是一個字符串變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM