[PHP-users 1480] Re: echo()と print() の違いについて

Shoji Ogura php-users@php.gr.jp
Fri, 24 Aug 2001 12:08:29 +0900


初めて投稿します。

小倉@sarahsystemsと申します。以後宜しくお願いいたします。

On Fri, 24 Aug 2001 10:11:51 +0900
"Yasuo Ohgaki" <yohgaki@hotmail.com> wrote:
> # 私はecho()はexpressionにならないので
> # print()を使っています。
> # 例) (true) ? echo('TRUE') : echo('FALSE'); //シンタックスエラー

これは、
echo (true) ? 'TRUE' : 'FALSE';
でいけるのでは?

三項演算子は A?B:C の B、Cは戻り値のある式が必要なので
戻り値のないechoは三項演算子の分岐部分には使えないと思います。
もちろん
print (true) ? 'TRUE' : 'FALSE';
とも書けるはずです
。
ただ、printは戻り値を伴うので
$hoge = (true) ? print('TRUE') : print('FALSE');
のような使い方が出来るのでやっぱり状況で使い分けるのが
いいのかも。

それよりも不思議なのは手元のオライリーのPHPのリファレンスでは
print()の型はvoidなのに上記の式で$hogeに1が返ってくることの方が
疑問です。どうしてなんでしょうね?

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Shoji Ogura (SarahSystems Lpc.)
 kohenji@sarahsystems.com
FingerPrint
  ADD7 C38D 2069 3362 8059  D09A 2741 560F 8906 7371
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-