【发布时间】:2011-08-19 03:27:34
【问题描述】:
<?php
const FOOBAR = "Foo"; // Works.
const FOOBAR = array("Foo", "Bar"); // Doesn't work. Makes sense.
const FOOBAR = serialize(array("Foo", "Bar")); // Doesn't work. Okay. :\
define("FOOBAR", serialize(array("Foo", "Bar"))); // Works! The heck?
?>
PHP Parse error: syntax error, unexpected '(', expecting ',' or ';'
为什么常量可以在用define() 声明时设置为序列化对象,但不能用const 关键字声明?我在这里错过了什么?
(用5.3.5-1ubuntu7.2测试。)
【问题讨论】:
-
常量声明(也是全局上下文中的声明)只能是值,不能是表达式。你不是在做assignment,你是在declaring。
标签: php serialization constants declaration