PHP赋值运算符做什么?

问题描述

| 我碰巧读了这个http://code.google.com/speed/articles/optimizing-php.html 它声称该代码
$description = strip_tags($_POST[\'description\']);
echo $description;
应该如下优化
echo strip_tags($_POST[\'description\']);
但是,据我了解,PHP中的赋值操作不一定会在内存中创建一个副本。 内存中只有一个“ abc”副本。
$a = $b = \"abc\";
仅当更改一个变量时,它才会消耗更多的内存。
$a = $b = \"abc\";
$a = \"xyz\";
那是对的吗?     

解决方法

           应该如下优化 如果您不需要存储它,那么这只是一个好主意,从而避免了不必要的内存消耗。但是,如果以后需要再次输出相同的内容,最好将其存储在变量中,以避免再次调用函数。   那是对的吗? 是。它称为写时复制。     ,        在第一个示例中,如果变量仅使用一次,则首先没有必要创建变量,只需立即回显语句结果,就不需要该变量。 在第二个示例中,PHP有一个称为写时复制的东西。这意味着,如果您有两个指向同一事物的变量,那么它们都都指向同一位内存。直到写入其中一个变量,然后创建副本,然后对该副本进行更改。     ,        作者确实有一点要复制数据到变量中,这样会将数据保留在内存中,直到变量为“ 4”为止。如果以后不需要再次使用数据,则确实浪费了内存。 否则,两种方法之间的峰值内存消耗根本没有区别,因此他的推理(“复制”)是错误的。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...