PHPざっくり基礎04

PHPざっくり基礎04

整数

整数は以下の種類を扱うことができる。

  • 10 進数(基数 10)
  • 16 進数 (基数 16)
  • 8 進数 (基数 8)
  • 2 進数 (基数 2) 

オプションで、符号(-または+)を前に付けることが可能。

<?php
$a = 1234; // 10進整数
$a = -123; // 負の数
$a = 0123; // 8進数 (10進数の83と等価)
$a = 0x1A; // 16進数 (10進数の26と等価)
$a = 0b11111111; // 2進数 (10進数の255と等価)
?>

echoやvar_dumpで表示すると、どれも10進数で表示された。

stringにキャストして表示しても10進数のままで表示された。

整数の範囲(約20億)を超えた場合はfloatとして扱われる。

浮動小数点

<?php
$a = 1.234; 
$b = 1.2e3; 
$c = 7E-10;
?>

精度に注意事項があるので、桁数が増えたときはちゃんと確認しよう!

文字列

文字列リテラルは、4 つの異なる方法で指定することが可能。

  • 引用符
  • 二重引用符
  • ヒアドキュメント構文
  • nowdoc 構文 (PHP 5.3.0 以降)

引用符

引用符でくくると文字列として認識される。

<?php
$a = 'PHPの勉強';

echo $a; //PHPの勉強
var_dump($a);
?>

引用符を文字列として表示したい場合はバックスラッシュでエスケープさせる必要がある。

<?php

$a = '\'引用符を出そう'; //'引用符を出そう
echo $a; //PHPの勉強
var_dump($a);
?>

シングルクォーテーションでくくっている場合はエスケープシーケンスは展開されず、そのまま出力される。

<?php

$a = '改行\nテスト'; //'改行\nテスト

echo $a; //PHPの勉強
var_dump($a);
?>


二重引用符

文字列が二重引用符 (“) で括られた場合、以下のエスケープシーケンスを特殊な文字として解釈する。

エスケープシーケンス一覧

  • ¥n 改行
  • ¥r キャリッジリターン
  • ¥t タブ
  • ¥¥ ¥文字
  • ¥$ $文字
  • ¥( 左括弧
  • ¥) 右括弧
  • ¥[ 左括弧
  • ¥] 右括弧
  • ¥’ シングルクオーテーション
  • ¥” ダブルクオーテーション
  • ¥nnn 8 進数表記
  • ¥xnn 16 進数表記
<?php

$a = "改行\nテスト\n";

echo $a; //PHPの勉強
var_dump($a);
?>


この場合\nの位置で改行がされる。

<?php

$b = 1;

echo "{$b}回目のテスト";
?>

$bが展開されて1回目のテストと表示される。

注意するのは変数を{}で囲っていること。

どこまでが変数かわかるようにしないといけないので変数名の後ろに半角スペースや{}で変数を展開できるようになるが、半角スペースの場合そのまま半角スペースも表示されたので、{}で書くほうがわかりやすい気がする。

ヒアドキュメント構文

ある ID (と、それに続けて改行文字) を <<< の後に指定し、文字列を置いた後で、同じ ID を括りを閉じるために置く。

<?php

$b = <<<ABC
30回目のテスト
ABC;

echo $b; //30回目のテスト
?>

<<<ABCからABC;までの間がすべて文字列として認識される。

ダブルクォーテーション構文と同じ扱いになる。

警告

非常に重要なことですが、終端 ID がある行には、セミコロン (;) 以外の他の文字が含まれていてはならないことに注意しましょう。 これは、特に ID はインデントしてはならないということ、 セミコロンの前に空白やタブを付けてはいけないことを意味します。 終端 ID の前の最初の文字は、使用するオペレーティングシステムで定義された 改行である必要があることにも注意を要します。 これは、例えば、Macintoshでは \r となります。 最後の区切り文字の後にもまた、改行を入れる必要があります。
この規則が破られて終端 ID が “clean” でない場合、 終端 ID と認識されず、PHP はさらに終端 ID を探し続けます。 適当な終了 ID がみつからない場合、 スクリプトの最終行でパースエラーが発生します。

とあるので、使う場合は改行やインデントに気を付けよう!

nowdoc構文

基本的にはヒアドキュメントと似ているが、シングルクォーテーションでくくった時と同じ挙動になる。なので、変数とエスケープシーケンスは展開されない。

<?php

$b = <<<'ABC'
30回目のテスト\n
ABC;

echo $b;
?>


「30回目のテスト\n」とそのまま出力される。

演算子

文字列は、’.’ (ドット) 結合演算子で結合することが可能。

<?php

$b = "ここと";
$c = "ここ";
echo $b.$c."を.でつなげる"; //こことここを.でつなげる
?>


文字列はよく使うので基本的な扱い方はしっかり覚えよう!

細かな仕様や詳細はその都度しっかり確認する!

PHPカテゴリの最新記事