<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// これは記事の前には無関係ですPHPコードの例</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">dummyFunction</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-string">"このコードは、記事の内容とは何の関係もありません。"</span></span><span>;
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">dummyFunction</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>PHPでは、平方根関数SQRT()を使用して、数の平方根を計算します。使用は非常に簡単ですが、0や負の数などの特別な値を扱う場合、ランタイムエラーや予期しない結果を避けるために、その動作と潜在的な問題を理解する必要があります。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$number</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">sqrt</span></span><span>(</span><span><span class="hljs-variable">$number</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>; </span><span><span class="hljs-comment">// 出力 0</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>PHPでは、 SQRT(0)が0を返します。これは、0の平方根が0であるため、数学的論理と完全に一致しています。この状況は安全で、警告やエラーが生成されません。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$number</span></span><span> = -</span><span><span class="hljs-number">4</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">sqrt</span></span><span>(</span><span><span class="hljs-variable">$number</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>負の数でsqrt()を使用しようとすると、 PHP警告が発生します。
<span><span><span class="hljs-built_in">Warning</span></span><span>: sqrt() expects parameter </span><span><span class="hljs-number">1</span></span><span> </span><span><span class="hljs-keyword">to</span></span><span> be </span><span><span class="hljs-type">float</span></span><span>, negative given
</span></span>NAN(数ではない)を返します。これは、実際の範囲では、負の数には正方形の根がないためです。負の数の平方根に対処する必要がある場合は、複雑な数の概念を導入する必要があります。
PHP独自のsqrt()は複数形を直接処理することはできませんが、一部の拡張機能またはカスタム関数を通じて実装できます。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">sqrtComplex</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$number</span></span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$number</span></span><span> >= </span><span><span class="hljs-number">0</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">sqrt</span></span><span>(</span><span><span class="hljs-variable">$number</span></span><span>);
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">sqrt</span></span><span>(</span><span><span class="hljs-title function_ invoke__">abs</span></span><span>(</span><span><span class="hljs-variable">$number</span></span><span>)) . </span><span><span class="hljs-string">'i'</span></span><span>;
}
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">sqrtComplex</span></span><span>(-</span><span><span class="hljs-number">9</span></span><span>); </span><span><span class="hljs-comment">// 出力 3i</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>ここでは、虚数の平方根を虚数形として表します。ここでは、想像上の単位を表します。
入力値を確認します。警告を避けるために、sqrt()を呼び出す前に負の数字であるかどうかを判断します。
0:0の処理は安全で、直接計算するだけです。
複数のケースを検討してください。プログラムが負の平方根を扱う必要がある場合は、カスタム関数またはサードパーティライブラリを使用して複数形を表すことができます。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$number</span></span><span> = -</span><span><span class="hljs-number">16</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$number</span></span><span> < </span><span><span class="hljs-number">0</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"平方根は想像上の数です: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">sqrtComplex</span></span><span>(</span><span><span class="hljs-variable">$number</span></span><span>);
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"平方根は本物です: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">sqrt</span></span><span>(</span><span><span class="hljs-variable">$number</span></span><span>);
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>これにより、プログラムが負の入力による警告やエラーを引き起こさず、結果を正しく返すことができます。