printとechoどっちが早い?
どっちが早いかっていうと、echoだ!って書かれたブログは多いけれども、
理由が曖昧だったから、ソースコード晒す。
quote by: Zend/zend_compile.c(PHP: 5.3.0RC1)
void zend_do_print(znode *result, const znode *arg TSRMLS_DC)
{
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);opline->result.op_type = IS_TMP_VAR;
opline->result.u.var = get_temporary_variable(CG(active_op_array));
opline->opcode = ZEND_PRINT;
opline->op1 = *arg;
SET_UNUSED(opline->op2);
*result = opline->result;
}
void zend_do_echo(const znode *arg TSRMLS_DC)
{
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);opline->opcode = ZEND_ECHO;
opline->op1 = *arg;
SET_UNUSED(opline->op2);
}
つまり、printは戻り値を設定するための処理を行っているためechoより遅い。
以上、終わり。