LoginSignup
0
0

More than 1 year has passed since last update.

PHP(基礎文法)に関する自分用メモ

Posted at

XMLの読み込み

$xmlTree = simplexml_load_file('rss.xml');
echo $xmlTree->channel->link;
    ↑のように、タグ形式でchannelがプロパティ、linkが値みたいなかんじでアクセスできる。

ファイルの読み込み・追記

$news = file_get_contents('data/news.txt');
echo $news;  //画面にテキストの内容が表示される。

$news = $news . "<br>追加のニュースです";
$success = file_put_contents('data/news.txt', $news);  //これでnews.txtの中に追記ができる。

readfile('data/news.txt');  //いちいち↑のように変数に代入しなくても表示される。

ー------------------------
デフォルト値の引数は、呼び出しの時の引数で上書きされる!

function makecoffee($type = "cappuccino")
{
    return "Making a cup of $type.\n";
}
echo makecoffee();
echo makecoffee(null);
echo makecoffee("espresso");

【出力】
Making a cup of cappuccino.
Making a cup of .
Making a cup of espresso.

ファイルの書き込み

$success = file_put_contents('data/news.txt', 'こんにちは');  //newsというファイルが作成される。

if ($succes !== false) {
  echo '成功しました。';
} else {
  echo '失敗しました。';
}
  1. 現在の時刻を表示
date_default_timezone_set('Asia/Tokyo');
echo date('G時 i分 s秒');

$today = new DateTime();
$today->setTimezone(new DateTimeZone('Asia/Tokyo'));
echo '現在は ' . $today->format('G時 i分 s秒') . ' です。';

  1. リファレンスで=nullが書いてあれば、それは省略できるということ。あと引数のところで?と書いてあったら、それも省略できるということ。

  2. PHPだけのファイルであれば、終了タグはつけないこと。

  3. 文字列連結には" . "ドットをつける。

  4. リファレンスで"..."とあったときは、何個でもいいですよ、という意味。

  5. while文
    endwhileには「戻る」という特性がある。

$i = 1;
while ($i < 101):
	echo $i . '個<br>';
	$i = $i + 1;
endwhile

「{」を「:」、「}」を「endforeach(while の場合だったら endwhile )」で代替することも可能。→コロン構文

$i = 2;
while ($i <= 100) {
	echo $i;
	$i++;
	}
  1. for文
for ($i = 1; $i <= 100; $i = $i + 1):
		echo $i . '<br>';
endfor;

for ($i = 1; $i <= 100; $i = $i++){ {
		echo $i . '<br>';
}
  1. ダブルクォーテーションで文字列を囲んだ場合、中の変数を{}で囲むと変数に置き換わる。シングルクォーテーションの場合はされない。
  1. foreach文
$sales = [
  "cola" => 200,
  "milk" => 300,
  "soda" => 150,
  ];

  foreach ($sales as $key => $value) {  //『$key =>』の部分が省略できる。
    echo "($key) $value";
  }

  $colors = ["red", "blue", "yellow"];

  foreach ($colors as $value) {
    echo "$value";
  }
  1. if文
    5a9dbc694837-20230124.png

真偽値がfalseになる場合
文字列: 空、"0"
数値: 0、 0.0
論理値: false
配列: 要素の数が0、null

// if ($i) { もし$iが空文字じゃなかったら
if ($i == true) {
echo "hello";
}

三項演算子
三項演算子.png

  1. sprintf
    sprintf(フォーマットを定義する文字列, 入力したい文字1, 入力したい文字2, ・・・)
$format = "%sだと%sが%sます。";
$aaaa = '毎日(日)曜日';
$bbbb  = '僕';
$cccc = '喜び';
$message = sprintf($format, $aaaa, $bbbb, $cccc);
echo $message;

【出力結果】
毎日(日)曜日だと僕が喜びます。

%で始まるのが変換指定子というらしい。
%の次に1、2という数字を指定すると順番を指定することができる。

$format = "%1\$sが%2\$sで%4\$sが%3\$sです。";
$aaa  = '君';
$bbb = '私';
$ccc = '俺';
$ddd = 'あなた';

$message = sprintf($format, $aaa, $bbb, $ccc, $ddd);

【出力結果】
君が私であなたが俺です。

%d 10進数
%u 符号無し10進数
%o 符号無し8進数
%x 符号無し16進数
%X 符号無し16進数(大文字表記)
%e 指数形式の浮動小数点
%E %eと同じ(大文字表記)
%f 固定小数点形式の浮動小数点
%g %eまたは%fと同じ
%G %eまたは%fと同じ(大文字表記)
%b 符号無し2進数
%c 指定した文字コードに対応した文字
%s 文字列
%p 値のポインタ
%n 文字数を指定した変数に格納
%% %の文字そのもの(\と同様の使い方)

$num = 5;
$location = 'tree';
$format = 'There are %d monkeys in the %s';
echo sprintf($format, $num, $location);

【出力結果】
"There are 5 monkeys in the tree"

%0(桁数)d と指定すると、左側に0を埋めてくれる。

$format = あなたの学籍番号は %05d です \n";
print(sprintf($format, 1));
print(sprintf($format, 1234));

【出力結果】
あなたの学籍番号は、 00001 です。
あなたの学籍番号は、 01234 です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0