ホームページ  >  記事  >  バックエンド開発  >  基本的な PHP 面接の質問がわかりません

基本的な PHP 面接の質問がわかりません

WBOY
WBOYオリジナル
2016-06-23 14:39:11824ブラウズ

echo '1'.print(2)+3;

答えを教えて、コンピューターに行って試してください。


ディスカッションへの返信(解決策)

214.試してみます。騙されてprint関数の説明を見てみました。

511

変ですよね?
実際には何も驚くべきことではありません
print は実際には実際の関数ではない (言語構造体です) ため、括弧で囲まれたパラメーター リストを使用する必要はありません。
言い換えると、print(2) + 3 は実際には print 2 + 3 です
ただし、戻り値は常に 1 です

511 この 5 は print(2) + 3 によって生成されます
5 11 この 1 は次によって生成されますecho '1'
51 1 この 1 は print によって生成されます

あなたが得たものは本当に 214 ですか? phpのバージョンは何ですか?

214。試してみます。騙されてprint関数の説明を見てみました。

本当に 214 を獲得しましたか? phpのバージョンは何ですか?


214。試してみます。騙されてprint関数の説明を見てみました。

<?phpecho '1'.print(2)+3;echo '<br />';echo '1'.print(2);echo '<br />';echo print(2);echo '<br />';echo print(2)+3;echo '<br />';$tmp=print(2)+3;echo $tmp;echo '<br />';print(2)+3;echo '<br />';print '3';echo '<br />';?>

始めるのが早すぎたので、感覚を掴もうとしただけです。

本当に 214 を獲得しましたか? phpのバージョンは何ですか?


214。試してみます。騙されてprint関数の説明を見てみました。
投稿者は先に答えを言ってからやってみろって言ってませんでしたか?

それで、「騙された」ってどう言うの?

214。試してみます。騙されてprint関数の説明を見てみました。
関数の説明は見ましたが、戻り値の型だけを見ました。 C言語を学ぶことで身につく習慣。それが機能ではないことに気づきませんでした。また、echo をずっと使っていたのに、それが関数ではないことに気づきませんでした。それは、以前に VB を学習したからかもしれません。

それで、「騙された」ってどう言うの?
print の戻り値が何なのかわからなかったので、戻り値を見て答えを言ったので、ズルしていると言いました。

分からないけど、タマが痛い

511

おかしくないですか?
実際には何も驚くべきことではありません
print は実際には実際の関数ではない (言語構造体です) ため、括弧で囲まれたパラメーター リストを使用する必要はありません。
言い換えると、print(2) + 3 は実際には print 2 + 3 です
ただし、戻り値は常に 1 です

511 この 5 は print(2) + 3 によって生成されます
5 11 この 1 は次によって生成されますecho '1'
51 1 この 1 は print によって生成されます
なぜ 115 ではないのでしょうか

echo '1'.print(2)+3;
式 '1'.print(2)+3; 式は前に計算する必要がありますそれは echo に渡されます
そして print(2)+3 は 5 を出力して 1 を返します
したがって 5 が先頭に表示されます
echo は実際には '1'.1 を出力します、つまり 11 です

わかりました はい、チートは echo "1" です.(print"2")+3;

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。