
どなたか、熟練のプログラマーさんorSEさん、
お知恵の拝借をお願い致します。
現在、CakePHPで開発をしているわけですが、
emptyに 0 や '0' を判定させた際、
falseを返してしまうのに非常に困っています。
現在やろうとしている判定が下記のとおりです。
・nullが来たとき、変数の宣言が無い時など値が無ければエラー処理
・数字や文字列が来た時は通常処理
・数字の0や文字列の0が来た時も通常処理
なのですが、なかなか良い判定文が書けないのです。
emptyで判定すると0が処理から抜けてしまい、
抜けた0を拾うために
else if( $変数名 === '0' || $変数名 === 0)などとすると
$変数名の宣言が無い場合にワーニングが出てしまいます。
原則として、エラーを吸収する @ はPMの指示で使用が禁止されているため使えません。
なにか上手い処理の指定の仕方があれば教えてください。
一番ベストは、emptyの処理をオーバーライドして
0 or '0' 判定時にtrueを返すことなのですが、
オーバーライドのやり方が分からないのでそれも現状では出来ません。
ネットで色々読み漁りましたが、解決方法が見つかりませんでした。
どなたか、良い解決方法がありましたらご教授願います。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
CakePHPのemptyというのがよくわかりませんが、
自前のチェックメソッドを作成してるということですか。
また、CakePHPは1.2でいいんでしょうか。
>emptyで判定すると0が処理から抜けてしまい、
>抜けた0を拾うために
>else if( $変数名 === '0' || $変数名 === 0)などとすると
>$変数名の宣言が無い場合にワーニングが出てしまいます。
とりあえず変数が宣言されているか否か、に関しては、issetというものがあります。
<?php
if(isset($hoge)){
echo "hogeは宣言されてます";
}else{
echo "hogeは宣言されてません";
}
?>
これで$hogeが宣言されていない場合、”hogeは宣言されていません”
と表示されます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
phpの処理中に画面表示ををする...
-
PHPExcel処理速度が遅い
-
iframe内phpから全体の画面を出...
-
ページの一部だけリロード
-
includeしたファイルに変数を持...
-
PHPが処理を途中でやめる。原因...
-
会社の課題で共通処理(phpとht...
-
FTPコマンドでディレクトリごと...
-
Subversionのリポジトリの削除
-
フォントの色を変えるには?
-
バッチを用いたフォルダの自動移動
-
makefile でファイルをコピーす...
-
URLが.PHPってどういう...
-
PHPでフォルダ選択ダイアログを...
-
ループの中で mailItemObj.Disp...
-
「クラス関数」「メンバ関数」...
-
他の開発環境をインストしたらa...
-
VBAでJPGサイズ変更
-
さくらサーバーにて、phpからメ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
phpの処理中に画面表示ををする...
-
携帯電話用Webページの自動更新...
-
PHPが処理を途中でやめる。原因...
-
PHP内、ボタン押下と同時にリロ...
-
1つのPHPファイルに何度も同じ...
-
変数の範囲によって場合わけし...
-
phpからjavascriptの関数呼び出し
-
PHPのコード内でjavascriptを使...
-
Cronで同じ処理を複数同時に実...
-
VBAからPHPを実行(キック)したい
-
Smartyにて、文字検索
-
c言語 fopen
-
PHPで文字列の検索
-
質問させてください。
-
アドレスに[?****]と入れると、...
-
PHPでCGIの処理結果を使うには?
-
PHPの変わった閉じタグの必要性...
-
ブラウザから非同期プログラム...
-
SJISでPHP5+POSTGRESQL8
おすすめ情報