PHP:如果变量和参数共享相同的名称,它们会混淆吗?

时间:2014-04-14 21:51:44

标签: php

我的代码中有2个地方出现$ account_name,其中一个是函数参数的名称:

的functions.php:

function getAccountID ($account_name) {
    $account_id = mysql_query("SELECT account_id FROM accounts WHERE account_name = '$account_name'");
    $account_id = (mysql_fetch_assoc($account_id)); 
}

和另一个值为

的变量

的index.php:

$account_name = $fileop[0];
$account_id = getAccountID($account_name);

我知道变量的两个实例具有完全独立的用途:第一个只是函数占位参数的占位符,第二个函数在函数范围之外带有一个值。我试图尽可能地简化事情,这就是为什么我希望它们是相同的。这是否有效,如果是这样可以接受的做法?

1 个答案:

答案 0 :(得分:2)

了解PHP variable scope

简而言之,是的,这是可能的,只要名称描述了它包含的内容,就没有惯例问题。在函数之间重用变量名称是很常见的做法,只要它们可能代表什么没有混淆。

例外情况是$account_name是一个全局变量,可以在代码中的任何位置访问,包括在getAccountID()函数中。如果是这种情况,那么重用变量名会导致执行问题或错误,或者至少使代码难以理解。