如果我想要写一个非常长的变量名,例如:
$this_is_my_variable_that_does_something_in_the_following_function_and_provides_some_information_with_which_the_function_relies_upon_to_do_all_the_work_it_needs = null;
那样行吗?对于函数/方法名称的同样问题。
通常,这种限制是由与您的代码交互的其他人威胁暴力所导致的。
$i
、$n
或 $k
),经常会发生完全相同的事情。 - Jocelynif (strlen($varname) < 4 || strlen($varname) > 16) { SKINNERRRRRR(!!!!!1); }
- thomasrutter变量/函数/方法/类名称长度的限制不存在。
上面的评论指出,不应滥用这个属性。只有在涉及人类可读/易于维护的代码时才是真实的。
然而,这是 PHP 的极其有用的功能,在许多非常流行的项目中得到了很好的利用,例如 Twig,它生成类,例如(代码片段):
class __TwigTemplate_9601167421099bbb502d119e674fed3fb71769eef256903648c9c2b4b6faa436 extends \Twig_Template {
protected function doDisplay(array $context, array $blocks = array())
{
$__internal_0abebc74dd811fd7b4cfa4c6a2fdf870d7723c04e8daf6926b04914d6644935f = $this->env->getExtension("native_profiler");
}
}
在我的项目中,我也有机会从同样的属性中受益。
没有限制 - 但是这样做不建议,因为它会产生难以阅读的代码...
$arrivalDateTimeWithUnknownTimeZoneAndIncorrectlyAssignedUtcTimeZone
(我们生产代码中的真实示例)比$arrivalDateTime
更具表现力。原因:在第二个变量中,人类阅读您的代码将不得不询问您是否存在错误,因为它具有UTC时区,而实际上时区是未知的。在第一种情况下,很明显这是故意的。 - Xavi MonteroPHP没有对标识符的长度设置限制。
话虽如此,我不确定为什么有人会想要创建一个长达160个字符的变量名。我希望这只是一个假设性的问题。
$arrivalDateTimeWithUnknownTimeZoneAndIncorrectlyAssignedUtcTimeZone
。为@ceejayoz和清晰的代码规则加1分! - Xavi MonteroPHP对变量名没有任何限制。我的建议是,变量名必须包含你将要存储的数据的定义。
$thisIsMyVariableThatDoesSomethingInTheFollowingFunctionAndProvidesSomeInformationWith WhichTheFunctionReliesUponToDoAllTheWorkItNeeds = null;
这看起来很容易阅读。我可以一口气说出来! *深呼吸* - BoltClock