ホームページ >バックエンド開発 >PHPチュートリアル >面接での 2 つの質問に対する解決策
面接での 2 つの質問
1. 次のステートメントは何を出力しますか?
if ($a=$b) printf(“a==b”);
else printf(“a!=b” ) ;
2. $array['anykey'] と $array[anykey] の違いは何ですか?
(私の考え: 最初の質問は、$a=$b であり、$b が割り当てられていないためです。値が2つあるので、すべて空で、「a==b」が出力されますが、実際に実行すると、「a!=b」が出力されます。
2番目の質問です。この質問の目的がわかりません。インデックスは文字、もう 1 つは変数です)
-----解決策のアイデア------ -------
1 , a!=b
質問では $b に値が割り当てられていないため、$b は空であり、$a=$b は空を返し、 false Branch
2,
$array['anykey'] anykey は文字列です
$array[anykey] の anykey は定数です
E_NOTICE レベルのエラーがブロックされる場合、この 2 つは同じです
-----解決策のアイデア----------------------
1. $a=$b
$b には値がないので null、$a=$ b の後の $a も null なので、if($a) が null、つまり false
If文を追加します
$b=1;
if ($a=$b) printf ("a==b");
else printf("a!=b) ");
これは true を返します
2.
$array['anykey'] および $ array[anykey]
一重引用符が追加されていない場合は、システムが自動的に追加します見つからない場合はもう一度検索してください。それも同じですが、追加しないと通知が来て何度も確認する必要があり、リソースの無駄になります。
------解決策のアイデア----------------------
1. 投稿者は $a を出力できます。 =$b の値を別にすると、「a!=b」が出力される理由がわかります
2. $array['anykey'] と $array[anykey] の場合、前者の使用をお勧めします。高性能