[前][次][番号順一覧][スレッド一覧]

mysql:5637

From: Sumito_Oda <Sumito_Oda <oda@xxxxxxxxxx>>
Date: Mon, 17 Jun 2002 21:03:10 +0900
Subject: [mysql 05637] Re: warning 文

織田です

PHP4.0.6あたりまでは未定義の変数、定数他の使用が可能だったものが
PHP4.1.0以降、未定義の変数、定数他に対して警告を吐くようになりました。

> Warning: Use of undefined constant localhost - assumed 'localhost' in
これは localhostというシンボリック定数は定義されていないという意味です。
つまり define("localhost","localhost"); しろと。

一方、mysql_connect('localhost','goudo','passwd')
は引用符('や")でシンボルを使わず、定数を指定する方法
(囲まれている部分(この場合は文字列)はリテラル定数といいます)もあります。
この場合はシンボルを使わないので定義をする必要がありませんね。

解釈の優先順位が変わったのか、それとも警告が出るようになっただけなのか
ちょっと判りません。私は引用符無しで関数を引張った事がないので。

>この、例えば localhost と 'localhost'   は
>どう違うのでしょうか?。
$lh = localhost;
がどう解釈されるかを考えれば判ります。未定義のシンボルの中身を
代入しているのか、引用符が付いていないが文字列を代入してるのか。
#まあシンボルのつもりなら大文字でLOCALHOSTと書くでしょうけど。

>(Cのように変数を使う前に定義しろ ですか?。)
そういうことですね。定義というと大仰ですが、
使うなら値を代入しとけってことです。
因みに判断はisset()やdefined()を使う。

PHP-users MLなら的確な情報が貰えると思いますので
もうちっと深いところが必要ならそちらでやりましょう。
意外とPHP3→4.2(最新)だとハマる所が多いです。PHP5も後ろに控えてることですし
-- 
Sumito Oda mailto:oda@xxxxxxxxxx

[前][次][番号順一覧][スレッド一覧]

      5623 2002-06-14 10:42 ["goudo" <goudo@xxxxx] warning 文                              
      5624 2002-06-15 19:37 ┗[とみたまさひろ <tomm]                                       
      5625 2002-06-15 21:43  ┗[Sumito_Oda <oda@xxxx]                                     
      5626 2002-06-15 21:49   ┣[Sumito_Oda <oda@xxxx]                                   
      5635 2002-06-17 16:49   ┗["goudo" <goudo@xxxxx]                                   
->    5637 2002-06-17 21:03    ┗[Sumito_Oda <oda@xxxx]                                 
      5646 2002-06-19 13:36     ┗["goudo" <goudo@xxxxx]                               
      5647 2002-06-19 14:00      ┣[Youichi Iwakiri <yiw]                             
      5653 2002-06-21 01:11      ┗[<miffyz@xxxxxxxxxx> ]