我正在使用定义功能根据性别改变国籍(Im Italian因性别而异).代码有效,但是当我用MySQL中的其他函数更改函数参数时,函数停止工作.
define("ITA", serialize(array("m" => "italiano", "f" => "italiana")));
define("ENG", serialize(array("m" => "inglese", "f" => "inglese")));
define("RUS", serialize(array("m" => "russo", "f" => "russa")));
function nationality($code, $gender) {
$nationality = unserialize($code);
return $nationality[$gender];
}
echo nationality(ENG,'f'); //WORKS
$nationality = $author['nationality'];
echo nationality($nationality,'f'); //DOESNT WORKS
Run Code Online (Sandbox Code Playgroud)
编辑:$ author ['nationality']; 取自MySQL
那是因为你将字符串传递给你的函数而不是常量.
我在这里猜测,但看起来$author['nationality']似乎是'ENG','ITA'等.要传递字符串作为常量使用constant()函数,如下所示:
echo nationality(constant($nationality),'f');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |