2009-08-06 7 views
0

私はちょうど楽しみのためにPHPの土地に近づくことを決めました。そして、PHPがゆるやかに型付けされ、$ varの再利用が可能であることを読むことは、以下のコードが問題にならないという事実です。PHP可変データ型

$x = 996; 
$x = mysql_query("SELECT aString FROM table1"); 

変数xは996とintデータ型として格納され、第2ライン後には、クエリからの文字列の文字列データ型として格納されているのだろうか?

キャスティングエラーはありませんか?

+0

それを説明し、するmysql_queryは、文字列を返しません。通常、特定のキャッシュされた結果セットを参照する整数であるMySQL Result IDを返します。 – Amber

答えて

10

あなたは正しいですか。それは「緩く型付けされた」という定義です。しかし、それはベストプラクティスではないかもしれません。

http://drupaler.co.uk/blog/baby-dont-you-loose-your-type-me/66は、あなたの件名でよく読まれます。

+0

正確に同じ変数名を使用すると、コードを読まなければならない人が混乱するだけです。 – rpjohnst

+0

ありがとう、私はこれを読むでしょう。 – jr3

3

二行目はあなたの文字列を与えることはありませんことを、mysql_queryresource(ライブラリ関数の不透明なハンドル/ポインタの一般いくつかの種類)と呼ばれる内部PHPタイプ

+0

+1ありがとうポール! – jr3

1
を返す以外、エラーが起こらないだろう

キャストエラーはありませんか?

正解!

jalfは、サイドノートでもhere