6

コマンド echo は何も返しません。しかし、print は 1 を返します。常に。この返される 1 の実用的な用途は何ですか? 確かに式で使用できますが、式が常に真であり、より多くのコードを使用する場合、その式は役に立たないのではないでしょうか?

<?php
unset($empty);
if(print ($empty)){
    echo "Yep sure thing. Print strikes again with a ", "1.";
}
?>

以下のように常に同じ結果を返すべきではないので、ポイントは何ですか?

<?php
print ($empty);
echo "Yep sure thing. Print strikes again with a ", "1.";
?>

この質問は 1 を返すことに関するものであり、「Echo ではコンマで区切られた複数の文字列をエコーすることができますが、print では許可されません」などではありません。

4

4 に答える 4

2

結果は常に真であるため、次のような式で連鎖させることができます。

if (print('debug stuff') && $a == 1) {
    // do stuff
} elseif (print('debug another') && $a > 56) {
    // do stuff
}

条件が評価されると、結果に影響を与えない一種のデバッグのように機能します。

または、無限ループで使用:

while(print('still in the loop')) {
    // do something very exciting
}

これらは実行できないものもありますがecho(解析エラーが発生する可能性があります)、その有用性は基本的に運用段階ではなく、テストおよびデバッグ段階に限定されます。

于 2013-05-23T08:47:15.977 に答える
1

有用な表現が見当たりません。しかし、私はいくつかの奇妙なものを作成できます:

ループショートプリンターの場合:

for($i=0; $i<100; $i+=print($i.')<br/>')) ;

while ループ印刷カウンター:

//$result is some db result
$rowCounter = 0;
while($row = $result->fetchAssoc()) {
    $rowCounter += print($row['column']);
}
于 2013-05-23T09:06:24.413 に答える
0
**echo**

No return value
Outputs one or more strings separated by commas

  e.g. echo "String 1", "String 2"

**print**

Returns 1, so it can be used in an expression
Outputs only a single string

例 if ((print "foo") && (print "bar"))

于 2013-05-23T08:52:17.977 に答える