美文网首页
0x02 - PHP 中的对象类型

0x02 - PHP 中的对象类型

作者: 游城十代2dai | 来源:发表于2017-09-04 00:31 被阅读32次

PHP 中的数组字符串貌似并不是对象类型, 需要使用关键字 object 转化才能成为对象, 这点和 OC 有很大的区别

0x01- 字符串

字符串有四种使用的方式:

单引号

  $str = ''; //  这种创建的字符串不可以引用其他变量
eg:
  $str1 = '12';
  $str2 = '$str1';
 这时候使用 echo 的话, 打印的结果为:  $str1

双引号

  $str = ""; //  这种创建的方式可以引用其他变量
eg:
  $str1 = '12';
  $str2 = "{$str1}";
 此时打印的结果为: 12
* 这种引用的方式要加 {} , 因为习惯😂

heredoc 语法

// 其实就是双引号的方式
$heredoc = <<<"LIST"
<ul>
  <li>你好</li>
  <li>Hello World</li>
  <li>no 不</li>
</ul>
LIST;
echo $heredoc;

nowdoc 语法

// 和单引号一样的
$nowDoc = <<<'List'
<ul>
  <li>你好</li>
  <li>Hello World</li>
  <li>no 不</li>
</ul>
List;

0x02 - 数组

数组被分为了索引数组和关联数组, 经过学习, 发现就是 OC 中的字典, 并且不会出现越界的现象, 而且现在大多使用的是字面量的方式创建

0x01 索引数组

$arr1 = [1, 2, 34, 45];
$arr2 = ['s', 'sd', 'aa', '是'];
$arr3 = [0 => 'ss', 1 => 'ss', 2 => 'ss', 3 => 'ss',];

这三个数组都是可以理解为角标从 0 --> 3 的数组,

$arr3 = [0 => 'ss', 3 => 'ss', 4 => 'ss', 9 => 'ss',];

这个数组就和我们的字典很像了, 是存在 key => value 的

ps: 数组中的 key 若是有相同的, 后面的则会覆盖前面的值, 数组常用 print_r($arr) 来输出数组

0x02 - 关联数组

$arr = ['id' => 'peter', 'name' => 'jim', 'ii' => '11'];

关联数组, 完全是靠 key 去寻找 value, 也等价于我们的 NSDictionary

0x03 - 增删改查

$arr = ['id' => 'peter', 'name' => 'jim', 'ii' => '11'];
$arr[] = 'gender'; //  在最后面插入 key = 0 , value = 'gender' 的元素
$arr[8] = 'gender'; //  在最后面插入一个 key = 8 , value = 'gender'  的元素
$arr['gender'] = 1; //  在最后面插入一个 key = gender , value = 1  的元素
unset($arr['id']); // 删除数组中的一个
 
// 删除数组中所有的值
foreach ($arr as $key => $value) {
  unset($arr[$key]); 
}
$arr['ii'] = 'gender'; //  修改 key = ii 的 vlaue 为 gender

0x03 - 对象

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 权限

$objc = new stdClass();
$objc->name = '你好';
$objc->action = function ()
{
  return 'action start';
};

echo $objc->name;
echo call_user_func($objc->action);

通用的创建对象, 此时的 aciton 是属性, 也是方法, 和我们OC 的 block 很像, 估计以后的 this 会出现指向问题

相关文章

  • 0x02 - PHP 中的对象类型

    PHP 中的数组字符串貌似并不是对象类型, 需要使用关键字 object 转化才能成为对象, 这点和 OC 有很大...

  • PHP技术梳理

    PHP语言: PHP基础, 数据类型, 导入文件 string array 面向对象技术, 类, 对象, 继...

  • php变量和数据类型

    php中的变量 PHP中的变量声明 PHP中的变量的使用 PHP中的数据类型之整型 PHP数据类型之浮点类型和布尔...

  • 【渗透测试】-上传漏洞之文件上传

    0x01:文件上传常识 后门文件后缀名必须和网站代码类型保持一致(asp。php、aspx……) 0x02:解析漏...

  • php中对象是引用类型吗?

    这貌似是一个极其简单的问题,还用得着专门写一篇博文?各位看官,最初我也这么认为,但这的确蒙蔽了你那水灵灵的小眼睛,...

  • php中对象是引用类型吗?

    这貌似是一个极其简单的问题,还用得着专门写一篇博文?各位看官,最初我也这么认为,但这的确蒙蔽了你那水灵灵的小眼睛,...

  • php中对象是引用类型吗?

    千峰PHP 这貌似是一个极其简单的问题,还用得着专门写一篇博文?各位看官,最初我也这么认为,但这的确蒙蔽了你那水灵...

  • php中对象是引用类型吗?

    这貌似是一个极其简单的问题,还用得着专门写一篇博文?各位看官,最初我也这么认为,但这的确蒙蔽了你那水灵灵的小眼睛,...

  • PHP垃圾回收机制

    PHP中的 GC 在PHP中,没有任何变量指向这个对象时,这个对象就成为垃圾;PHP会将其在内存中销毁。这是PHP...

  • PHP 7 新特性

    变量类型: 类型提示 PHP 5.0 首次提出函数参数(只针对对象类型)的类型提示(Type Hint),之后 P...

网友评论

      本文标题:0x02 - PHP 中的对象类型

      本文链接:https://www.haomeiwen.com/subject/yjrsjxtx.html