在PHP中声明一个不必要的变量会消耗内存吗?

时间:2013-01-25 10:48:26

标签: php performance variables

我通常在PHP中这样做是为了更好的可读性,但我不知道它是否消耗内存或有任何其他问题?假设我有这段代码:

$user = getUser(); // getUser() will return an array

我能做到:

$email = $user["email"];
sendEmail($email);

如果没有声明变量$ email,我可以这样做:

sendEmail($user["email"]);

哪一个更好?请注意,这只是一个非常简单的例子。

2 个答案:

答案 0 :(得分:5)

为了节省几个字节,不要使代码的可读性降低。即使$email是100 MB字符串,这也不会为您节省更多,因为内部PHP使用写入时复制机制:变量的内容除非您更改它,否则不会被复制。

示例:

$a = str_repeat('x', 100000000); // Memory used ~ 100 MB
$b = $a;                         // Memory used ~ 100 MB
$b = $b . 'x';                   // Memory used ~ 200 MB

答案 1 :(得分:0)

是的,是的!变量创建存储区域,以便您可以使用和操作它们。如果在这种情况下未使用,则会发生存储消耗。 sendEmail($user["email"]);将是更好的方式。但它不是一个没有变量编写代码的好方法。通过变量,您可以追踪实际的错误,如果有任何&它还有助于提高可扩展性和可读性。