符号是什么意思:在php中意味着什么?

时间:2011-09-10 18:06:17

标签: php

我在框架的某些变量上使用print_r来弄清楚它们的内容以及我看到的内容是什么

Array (
   [pages:navigation] => Navigation
   [pages:via] => via pages
   [item:object:page_top] => Top-level pages
)

我认为这很好,因为我可以创建像

这样的数组
$ar=array('pages:navigation' => 'Navigation',
           'pages:via' => 'via pages');

并且没有问题,但是当我创建这个

class student {
   public $name;
   public function get_name()  {
      return $name;
   }
   private $id;
   public function get_id() {
      return $id;
   }
   protected $email;
}

$s = new student();
$s->name="hi";
print_r($s);

我明白了:

student Object ( [name] => hi [id:student:private] => [email:protected] => )

此处会自动为:插入符号id,表示它是student的成员且private,但public未插入成员name

我无法弄清楚符号:究竟是什么意思?它是某种命名空间吗?

2 个答案:

答案 0 :(得分:3)

在数组中,它没有特殊含义。它只是字符串键的一部分;数组键可以是任何字符串或整数。

在对象中,print_r显示私有属性的属性名称。

id:student:private中,id是属性名称,student是声明属性的类,private是属性的可见性。

答案 1 :(得分:1)

可能是脚本/页面用于分隔数组key中的值的内容。他们可能在键名中使用空格,因此使用空格是不可接受的,并且需要一个通常在值本身中找不到的字符。

就像许多其他语言中的命名空间一样,使用.作为分隔符,该脚本决定使用:(然后在最近的日期解析,最有可能使用它作为最初的预期用途)。

没有完整地看到脚本,这只是对实现的猜测。