PHP 中的數(shù)組字符串貌似并不是對(duì)象類型, 需要使用關(guān)鍵字 object
轉(zhuǎn)化才能成為對(duì)象, 這點(diǎn)和 OC 有很大的區(qū)別
0x01- 字符串
字符串有四種使用的方式:
單引號(hào)
$str = ''; // 這種創(chuàng)建的字符串不可以引用其他變量
eg:
$str1 = '12';
$str2 = '$str1';
這時(shí)候使用 echo 的話, 打印的結(jié)果為: $str1
雙引號(hào)
$str = ""; // 這種創(chuàng)建的方式可以引用其他變量
eg:
$str1 = '12';
$str2 = "{$str1}";
此時(shí)打印的結(jié)果為: 12
* 這種引用的方式要加 {} , 因?yàn)榱?xí)慣??
heredoc 語(yǔ)法
// 其實(shí)就是雙引號(hào)的方式
$heredoc = <<<"LIST"
<ul>
<li>你好</li>
<li>Hello World</li>
<li>no 不</li>
</ul>
LIST;
echo $heredoc;
nowdoc 語(yǔ)法
// 和單引號(hào)一樣的
$nowDoc = <<<'List'
<ul>
<li>你好</li>
<li>Hello World</li>
<li>no 不</li>
</ul>
List;
0x02 - 數(shù)組
數(shù)組被分為了索引數(shù)組和關(guān)聯(lián)數(shù)組, 經(jīng)過(guò)學(xué)習(xí), 發(fā)現(xiàn)就是 OC 中的字典, 并且不會(huì)出現(xiàn)越界的現(xiàn)象, 而且現(xiàn)在大多使用的是字面量的方式創(chuàng)建
0x01 索引數(shù)組
$arr1 = [1, 2, 34, 45];
$arr2 = ['s', 'sd', 'aa', '是'];
$arr3 = [0 => 'ss', 1 => 'ss', 2 => 'ss', 3 => 'ss',];
這三個(gè)數(shù)組都是可以理解為角標(biāo)從 0 --> 3 的數(shù)組,
$arr3 = [0 => 'ss', 3 => 'ss', 4 => 'ss', 9 => 'ss',];
這個(gè)數(shù)組就和我們的字典很像了, 是存在 key => value 的
ps: 數(shù)組中的 key 若是有相同的, 后面的則會(huì)覆蓋前面的值, 數(shù)組常用 print_r($arr)
來(lái)輸出數(shù)組
0x02 - 關(guān)聯(lián)數(shù)組
$arr = ['id' => 'peter', 'name' => 'jim', 'ii' => '11'];
關(guān)聯(lián)數(shù)組, 完全是靠 key 去尋找 value, 也等價(jià)于我們的 NSDictionary
0x03 - 增刪改查
$arr = ['id' => 'peter', 'name' => 'jim', 'ii' => '11'];
- 增
$arr[] = 'gender'; // 在最后面插入 key = 0 , value = 'gender' 的元素
$arr[8] = 'gender'; // 在最后面插入一個(gè) key = 8 , value = 'gender' 的元素
$arr['gender'] = 1; // 在最后面插入一個(gè) key = gender , value = 1 的元素
- 刪
unset($arr['id']); // 刪除數(shù)組中的一個(gè)
// 刪除數(shù)組中所有的值
foreach ($arr as $key => $value) {
unset($arr[$key]);
}
- 改
$arr['ii'] = 'gender'; // 修改 key = ii 的 vlaue 為 gender
- 查
0x03 - 對(duì)象
class Person
{
public $name = 'Peter';
public $age = 29;
public $gender = '男';
public function description()
{
return '我是'.$this->name;
}
}
$obj = new Person;
echo "$obj->name";
echo $obj->description();
一定要注意箭頭是使用, 還有 public 權(quán)限
$objc = new stdClass();
$objc->name = '你好';
$objc->action = function ()
{
return 'action start';
};
echo $objc->name;
echo call_user_func($objc->action);
通用的創(chuàng)建對(duì)象, 此時(shí)的 aciton 是屬性, 也是方法, 和我們OC 的 block 很像, 估計(jì)以后的 this 會(huì)出現(xiàn)指向問(wèn)題