サイト移転のお知らせ

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

スポンサーサイト

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

配列要素をまとめて文字列にする便利な関数

意外と知られていない(私が知らなかっただけな)関数の便利さに驚いたのでご紹介。

配列要素をまとめて文字列にできる関数implode

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone



続きを読む

スポンサーサイト

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

PHPのマジック定数を使ってエラー解析効率化!!?

C言語などではおなじみの"__LINE__"などの定数。PHPでも使えるんですね。恥ずかしながら最近まで知りませんでした。PHPではマジック定数というようです。

例えば、
if($error) {
    exit('L'. __LINE__ .'@'. __FILE__ . PHP_EOL);
}


のようにエラー終了するようなブロックにマジック定数を使った出力を吐くようにしておけば、エラーログを見てどこに引っかかったかがすぐに分かります。
上の例では
L[行数]@[ファイル名]
という形で出力されます。

ちなみに、上記のコードは説明のための例です。マネしないでユーティリティ関数的なものを作って使いましょう。
ここで説明した以外にもマジック定数があります。以下のリンクをご参照ください。

自動的に定義される定数
http://php.net/manual/ja/language.constants.predefined.php

この辺もうまく使いましょうね。
error_log
http://www.php.net/manual/ja/function.error-log.php

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

MacOSXでphp.iniファイルのパスを変更する

MacOSXでコマンドラインでphpを使う場合の設定ファイル(php.ini)は"/private/etc/php.ini"になっています。
確認は以下のようなコマンドでできます。
$ php --ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File: /private/etc/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)


PHPの設定を変えるには上記のパスのファイルを直接変更してしまえばいいのですが、個人的にはルート直下のシステム領域を直接触るのは影響範囲がよく分からないのでしたくないと思ってます。
ようは小心者です(笑)

というわけで、$HOME/local/etcというディレクトリを作って、そこにカスタマイズしたphp.iniを置く事にしました。
では、PHPにこのphp.iniファイルを読むようにするには・・・環境変数PHPRCを定義すればできます。
~/.bash_profileなどに
export PHPRC=$HOME/local/etc/php.ini
の一行を追加すればOKです。

.bash_profileを変更した直後は、
$ source ~/.bash_profile
で反映させるのを忘れずに。

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

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のバージョンです。

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

PHPでHTTPを使ってサーバからデータを取得する

phpでHTTPリクエストを送信するためにはHTTP_Client::get()やhttp_get()のメソッドを使う、もしくはcurlなどのコマンドを直接呼び出すなんて方法も無くはないですが、HTTP_Clientを使う方法を紹介します。

続きを読む

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

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

Author:imxs

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

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

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