サイト移転のお知らせ

しばらくブログお休みしていましたが、こちらに移転しました。よろしければこちらへどうぞ。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PHPの定数定義constの罠?にハマる

PHPで定数を定義する方法にconstとdefineがあります。
constなら
const HOGE = 'hoge';
defineなら
define('HOGE', 'hoge')
という感じ。

さて、このconst。クラス定義ではないところで使うとPHPのバージョンによってエラーになったりならなかったりするんですね。
例えば、以下のようなコード
<?php

const HOGE='hoge';
echo HOGE . PHP_EOL;

?>
PHP 5.3.15ではエラーになりませんが、PHP5.2.17では以下のようなエラーになります。
PHP Parse error: syntax error, unexpected T_CONST in hoge.php on line 3

で、ちょいと調べてみたところconstは
「値が変更できない定数をクラス内に定義することができます。」
http://www.php.net/manual/ja/language.oop5.constants.php
ときちんと書いてあります。

・・・上記のコードのようにクラス定義の外で使う事自体が文法上は誤りということですね。罠でもなんでもなく、ただ私の勉強不足でした。
constは正しく使いましょう(笑)

ちなみに、PHP 5.3.15はMacOS X 10.8.3に入っているバージョン。
PHP 5.2.17はサクラインターネットのレンタルサーバの標準設定でのPHPのバージョンです。
関連記事
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

サイト内検索
プロフィール

Author:imxs

Androidアプリ開発などを行っているimxsの開発者です。気になることを調べてメモって行きます。ほとんどの人にはどうでもいい内容でも、広い世の中一人くらいは同じ疑問を持った奇妙な人がいることを信じつつ。暖かい目で見守ってやってください。
imxsの開発者ブログは移転しました。よろしければこちらへどうぞ。

カテゴリ
最新記事
リンク
RSSリンクの表示
最新コメント
最新トラックバック
FC2カウンター
アクセスランキング
[ジャンルランキング]
携帯電話・PHS
151位
アクセスランキングを見る>>

[サブジャンルランキング]
Android(Google)
39位
アクセスランキングを見る>>
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。