忍者ブログ
忘れない為のお勉強思い出し日記
[21] [19] [18] [17] [15] [14] [13] [12] [11] [10] [9]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

PHP表記

<?php

?>

<script language="php">

</script>

上記の表記はどちらでも可能
------------------------------
参照渡し

<?php
$var1 = "hoge";
$var2 =& $var1;
$var1 = "hogehoge";
print $var2;
?>

出力結果
hogehoge
-----------------------------
可変変数

<?php
$a = "hoge";
$$a = "hogehoge";
print $$a;
print $hoge;
print "${$a}";
?>

出力結果
$$a     hogehoge
$hoge   hogehoge
${$a}   hogehoge
------------------------------
関数のパラメータを配列に返す

<?php
function HogeFunc($str,$int){
 $hoge_array = func_get_args();
 return $hoge_array;
}
$hoge_array = HogeFunc("hoge",100);
print_r($hoge_array);
?>

出力結果
Array
(
    [0] => hoge
    [1] => 100
)
------------------------------
break n
引数[n]が省略された場合には1として
最も内側のループから脱出します。

<?php
for($i=0; $i<10; $i++){
        for($a=0; $a<10; $a++){
                if($a == 5){
                        $flag = "ok";
                        break 2;
                }
        }
        if($flag == "ok"){
                exit("$flag");
        }
}
?>

出力結果
$flagであるokは表示されない
------------------------------
関数返り値

<?php
function MyFunc(){
        $var_1 = array("あいうえお","かきくけこ");
        $var_2 = array("no"=>"1","name"=>"名前");
        return array($var_1,$var_2);
}
list($str,$data) = MyFunc();
$array = MyFunc();
print_r($str);
print_r($data);
print_r($array);
?>

出力結果
[$str]の結果
Array
(
    [0] => あいうえお
    [1] => かきくけこ
)
[$data]の結果
Array
(
    [no] => 1
    [name] => 名前
)
[$array]の結果
Array
(
    [0] => Array
        (
            [0] => あいうえお
            [1] => かきくけこ
        )

    [1] => Array
        (
            [no] => 1
            [name] => 名前
        )

)
------------------------------
再帰的(recursive)

この関数ではstaticを使用している為、関数を呼び出されるたびに
$cntをインクリメントする。

<?php
function Recursive(){
        static $cnt = 1;
        print "$cnt\n";
        $cnt++;
        if($cnt == 5){
                print "$cnt\n";
                $str = "終了";
                return $str;
        }
        if($cnt <= 10){
                $str = Recursive();
                return $str;
        }
}
$string = Recursive();
print $string;
?>

出力結果
1
2
3
4
5
終了
------------------------------
例外処理

<?php
class FilesException extends Exception {
        protected $time;
        public function __construct($msg,$code){
  parent::__construct($msg,$code);
                $this->time = time();
        }
        public function __toString(){
                return "例外クラス ".__CLASS__.":{$this->message}:{$this->code}\n";
        }
        public function getTime(){
                return $this->time;
        }
}

class Files {
        public function __construct($file){
                if(!file_exists($file)){
   //ファイルが存在しなければ例外に投げる
                        throw new FileException("ファイル $file が存在しません。",3);
                }
        }
}

try{
        $obj = new Files("hoge.txt");
        print "例外後の処理\n";
}catch(FilesException $e){
 //例外の発生したタイムを表示
        print "例外時間:{$e->getTime()}\n";
 //print を呼び出している為、toStringが表示される
 print $e;

}catch(Exception $e){
        print "例外:{$e->getMessage()}:{$e->getCode()}\n";
}
?>

出力結果
例外時間:xxxxxxxxxx(time)
例外クラス FilesException:ファイル hoge.txt が存在しません。:3

PR

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
05 2026/06 07
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
フリーエリア
最新コメント
[11/18 DSLR-A900]
[12/04 cnanogetde]
[06/25 QzLNP]
[06/25 Jarmj]
[06/25 wncwh]
最新記事
最新トラックバック
プロフィール
性別:
男性
バーコード
ブログ内検索