我在框架的某些变量上使用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
我无法弄清楚符号:
究竟是什么意思?它是某种命名空间吗?
答案 0 :(得分:3)
在数组中,它没有特殊含义。它只是字符串键的一部分;数组键可以是任何字符串或整数。
在对象中,print_r
显示私有属性的属性名称。
在id:student:private
中,id
是属性名称,student
是声明属性的类,private
是属性的可见性。
答案 1 :(得分:1)
可能是脚本/页面用于分隔数组key
中的值的内容。他们可能在键名中使用空格,因此使用空格是不可接受的,并且需要一个通常在值本身中找不到的字符。
就像许多其他语言中的命名空间一样,使用.
作为分隔符,该脚本决定使用:
(然后在最近的日期解析,最有可能使用它作为最初的预期用途)。
没有完整地看到脚本,这只是对实现的猜测。