web-dev-qa-db-ja.com

PHPの空の変数定義

$ errorで何かをする前に:

$error = NULL;

いくつかのスクリプトを見た:

$error = '';
$error = false;
$error = 0;
  • どの方法が「より良い」か、それをどの状況で使用するかによりますか?
  • あなたの提案は何ですか?
32
ZeroSuf3r

設計に依存します:

  • エラーが発生した場合にオブジェクトとして設定していますか? NULLを使用します。
  • エラーの場合にtrueに設定していますか? falseを使用します。
  • エラーが発生した場合に、それを何らかの番号として設定していますか?使用する 0
  • エラーを説明する文字列に設定していますか?使用する ''

エラーを示すより良い方法は、変数を設定し、それに応じてエラーを決定するのではなく、 例外を投げる です。

43
Madara Uchiha

1。

$v = NULL;

settype($v, 'string');
settype($v, 'int');
settype($v, 'float');
settype($v, 'bool');
settype($v, 'array');

var_dump($v);

2。

$v = NULL;
var_dump( (string) $v);
var_dump( (int) $v);
var_dump( (float) $v);
var_dump( (bool) $v);
var_dump( (array) $v);
4
Loading

この質問に対する標準的な答えはありません。これらのセマフォのいずれかを一貫して使用する限り、任意のセマフォを使用できます。 PHPは緩やかに型付けされているため、これらの値はすべて「偽」であり、ブール比較でFALSEとして評価できます。

とはいえ、空の文字列と他の文字列との間にはより多くの違いがあるため、この種のシナリオではNULLsとFALSEsに固執します。

3
Interrobang

$errorを使用する必要がある条件によって異なります。 NULLを使用することは、MySQL句およびその他すべてに対処するため、主に選択したものです。

1
hjpotter92