PHP建立數組的方法和url能夠傳遞數組解析

問題:
爲何在url中可使用url?a[]=123的形式傳遞數組。
問題起源
來自一道hash函數漏洞的題目,當函數處理數組的時候,能夠利用函數的漏洞。傳遞數組須要在url中傳遞。當時也是對php瞭解不夠透徹,數組的形式只知array()的形式。
問題解決:首先應該瞭解PHP中建立數組的幾種形式。簡單在下面介紹一下。
第一種php

$array=(‘$key1’=>’$value1’,’$key2’=>’$value2’……)

這種格式須要用戶指定數組中的鍵和值。
例如:數組

<?php
$a=array(‘a’=>’123’,’b’=>’456’);
Print_r($a);
?>

輸出結果
PHP建立數組的方法和url能夠傳遞數組解析
第二種ide

$array=array(‘value1’,’value2’)

這種格式不須要用戶指定鍵名,只須要給定值就能夠。鍵名會自動建立,鍵名爲數字,從零開始日後一次添加。
例如:函數

<?php
$b=array(‘abc’,’efg’);
Print_r($b);
?>

輸出結果:
PHP建立數組的方法和url能夠傳遞數組解析
第三種url

$c[‘key1’]=‘value1’

這種格式是將鍵放在中括號中,將值直接用等號賦值。
例如:code

<?php
$c['a']='yaun1';
$c['b']='yaun2’;
print_r($c);
?>

輸出結果:
PHP建立數組的方法和url能夠傳遞數組解析
第四種blog

$d[]=’value’;

這種這是連中括號裏的鍵都不用寫,直接賦值就能夠。鍵的名字會從零開始累加給各個值的鍵。
例如:字符串

<?php
$e[]=’one’;
$e[]=’two’;
Print_r($e);
?>

輸出結果:
PHP建立數組的方法和url能夠傳遞數組解析 hash

最基本的建立數組的方法應該是這麼多了,固然第一種方法,和第三種方法給定的鍵名不必定非是字符或字符串型的,也能夠是整數型的。
//
數組在url中的傳遞:
爲了能在url傳遞的時候讓後臺處理文件認爲我傳遞的是數組,可使用第四種方法。
當使用array()函數建立數組並傳遞的時候,默認認爲你傳遞的是個字符串
例如:
PHP建立數組的方法和url能夠傳遞數組解析
傳遞參數username=array(‘yaun’)結果:
PHP建立數組的方法和url能夠傳遞數組解析
返回字符串it

當使用第四種方法的時候,傳遞參數username[]=yaun
PHP建立數組的方法和url能夠傳遞數組解析返回數組

相關文章
相關標籤/搜索