サイド上背景

サイトについて

リンクフリー

個人ご利用の場合はリンクフリーです。備忘録等に各種ドキュメントへのリンク。ご自由にご利用ください。

転載

出典元表記(当社名orリンク記載)の際は転載等ご自由にご利用ください。

ライセンス

このページの内容の一部は、Google が作成、提供しているコンテンツをベースに変更・複製したもので、クリエイティブ・コモンズの表 示 3.0 ライセンスに記載の条件に従って使用しています。

株式会社 Sola.com

ソラコムお問い合わせ

〒981-0913
宮城県仙台市青葉区昭和町3-7 スカイコート上杉601
TEL:022-234-9972
Fax:022-778-6779

きょうのことば

" 子曰く、過ちて改めず、是れを過ちと謂う "

"孔子"


コンテンツ背景
Home スタッフ雑記 sato PHP再入門3
PHP再入門3
$a = "スコープのテスト"; // 関数外での変数定義(グローバルスコープ)

function test_scope1(){
  echo
$a; // 変数の参照(ローカルスコープの変数を探してしまう)
}

test_scope1(); // 関数を参照してみる



<?php
function test_scope2(){
  
$b = "ローカルスコープの変数"; // 関数内での変数定義(ローカルスコープ)
};
test_scope2(); // 関数の参照により変数$bが定義されたはずだが・・・・
echo $b; // 変数の参照(グローバルスコープの変数を探してしまう)
?>

上記はともに出力結果は

(なにも表示されない)

である。



<?php
$a
= 3;
$b = $a; // $bには$aの値を代入

$a = 5; // $aの値を変更して・・・
echo $b; // $aを代入されている$bを出力
?>

出力結果

3


<?php
$a
= 3;
$b = $a; // $bは通常の代入
$c = &$a; // $cは参照渡しで代入

$a = 5; // 元の変数$aを変更すると・・・

echo '通常の代入($b):' . $b . "<br />\n";
echo
'参照渡しで代入($c):' . $c . "<br />\n";

$b = 10; // 通常代入された変数$bを変更すると・・・
echo '$c変更後の元の変数($a):' . $a . "<br />\n";

$c = 7; // 参照渡しされた変数$cを変更すると・・・
echo '$c変更後の元の変数($a):' . $a;
?>

出力結果

通常の代入($b):3
参照渡しで代入($c):5
$c変更後の元の変数($a):5
$c変更後の元の変数($a):7



<?php
$c
= "グローバル変数";
function
test_scope3(){
  global
$c; //スコープ違いの変数を参照したいのでglobal宣言
  
echo $c;
};
test_scope3();
?>

出力結果

グローバル変数



<?php
$d
= 1;
$e = 2;
function
test_scope4(){
  
$GLOBALS["e"] = $GLOBALS["d"] + $GLOBALS["e"];
}
test_scope4();
echo
$e;
?>

出力結果

3


 

文字列から文字を抜き出す

波括弧「{}」はもう1つ、便利な使い方があります。「文字列」の中から「文字」を抜き出す事ができるのです。

<?php
$string
= "abc123";
    echo
$string{0}."<br>\n"; //0番目つまり先頭の文字だけ抜き出して表示
    
echo $string{4}; //5番目の文字を表示
?>

出力結果

a
2



<?php
$string
= "日本語";
    echo
$string{0}.$string{1}; //最初の2バイト分表示
?>

出力結果



これは日本語が2バイト文字のため2バイト分で「日」一文字になるため。


  • settype() ---- 変数の型をセットする
  • strval() ---- 変数の文字列としての値を取得する
  • print_r() ---- 指定した式に関する情報を解りやすく出力する
  • var_dump() ---- 指定した変数に関する情報をダンプする


配列
 
<?php
$arr
["5"] = 5;
$arr["05"] = "05";

echo
'$arr[5]で出力:'.$arr[5]."<br />\n";
echo
'$arr["05"]で出力:'.$arr["05"]."<br />\n";
echo
'$arr[05]で出力:'.$arr[05];
?>

出力結果

$arr[5]で出力:5
$arr["05"]で出力:05
$arr[05]で出力:5


<?php
//文字列型(string)から配列への変換
$a = "文字列";
$b = (array)$a; //キャスティングにより配列型に変換

//式の情報を出力
echo "<pre>";
print_r( $b );
echo
"</pre>";
?>

出力結果

Array
(
[0] => 文字列
)

<?php
$c
= NULL;
settype( $c, "array" ); //settype関数による変換

//式の情報を出力
echo "<pre>";
print_r( $c );
echo
"</pre>";

?>

出力結果

Array
(
)