PHPのechoとprintの速度はどっちがはやい?

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より遅い。

以上、終わり。