PHP関連のことを調べてみた

PHP関連のことを調べてみた

PHP 関数の定義

## はじめに
プログラミングをしているとよく使う処理など関数を作ったりします。関数を作るまとめです。
自分用のまとめなので間違いや自分が完全に理解しているところに関しては省略して書いていることもあります。ご了承お願いします。

## 関数の定義
“`php
function nameEcho($name) //$nameを仮引数と呼ぶ
{
return “こんにちは{$name}さん” . PHP_EOL;
}
“`
function 関数名(){
処理
}と記述します。関数名は任意で引数はなしなら無記述です多分。

## 実際に使ってみる
“`php
function nameEcho($name) //$nameを仮引数と呼ぶ
{
return “こんにちは{$name}さん” . PHP_EOL;
}

echo nameEcho(‘keia’); //keiaを実引数と呼ぶ
“`
“`
こんにちはkeiaさん
“`

## 実引数が記述されなかったら
実引数が記述されていない場合だとエラーが出ます。ですが、関数を定義する時に実引数が記

元記事を表示

PHP学習~出力・入力~

学習内容の備忘録。

参考サイト:paiza

## 文字や数字の出力

“`



“`

## 文字や数字の入力

“`
変数名 = fgets(STDIN);
変数名 = trim(変数名);
“`

fgets→指定したデータから文字列を受け取る命令(標準入力からデータを受け取る場合STDIN)
trim→文字列の先頭や末尾にある空白を削除する命令。

元記事を表示

PHP ifまとめ

## はじめに
ifについて理解はしているのですが、書き方がごっちゃになることがあるので自分用まとめです。
自分用のまとめなので間違いや自分が完全に理解しているところに関しては省略して書いていることもあります。ご了承お願いします。

## サンプルコード
“`php
$score = 100;

if ($score === 100) {
echo “excellent!!” . PHP_EOL;
} elseif ($score >= 80) {
echo “Great!” . PHP_EOL;
} else {
echo “もうすこしがんばりましょう” . PHP_EOL;
}
“`

## 比較演算子
“`php
>= //以上
<= //以下 > //超過
< //未満 === //等しい !== //等しくない ``` ## 複数条件 ```php && and //なおかつ || or //もしくは ! //ではない ``` ## まとめ 言語によって書き方が少しずつ違ったりしますよね。 なのでサンプルコード1

元記事を表示

PHP 変数まとめ

## はじめに
変数関連の自分用のまとめ記事です。自分用のまとめなので間違いや自分が完全に理解しているところに関しては省略して書いていることもあります。ご了承お願いします。

## 定数の定義
変数まとめの記事の初っ端から定数の定義について記述します。
“`php
const NAME = “keia”;
“`
定数は基本的に大文字で定数名の先頭に”$”をつけません。

## 変数、定数の型を知る方法
var_dump()を使うことで変数、定数の型を知ることができます。
“`php
$name = “keia”;
$price = 12500;
$tf = true;

var_dump($name);
var_dump($price);
var_dump($tf);
“`
“`php
string(4) “keia”
int(12500)
bool(true)
“`

## 変数の型指定
変数の前に変換したい型を記述することで型指定が可能になります。
“`php
$price = (float)12500;
$tax = (string)1.08;
“`
“`ph

元記事を表示

PHP 計算

## はじめに
PHPの勉強を進めています。勉強した内容のまとめです。
自分用のまとめなので間違いや自分が完全に理解しているところに関しては省略して書いていることもあります。ご了承お願いします。

## 今回の記事
今回は数値の計算の勉強をした時に「へー、こんなのもあるんだ」と思ったものを書きます。
基礎の四則演算は飛ばします。

## へー、こんなのもあるんだ
“`php
echo 10 ** 3 . PHP_EOL;//アスタリスクを2つ付けることで累乗で計算することが可能になります
echo 10 + ‘5’ . PHP_EOL; //数字と文字列の数字で計算しても計算できます。
echo ’10’ + 5 . PHP_EOL; //先頭が文字列の数字でも計算できます。
“`
“`
1000
15
15
“`

## 終わりに
四則演算くらいは知っていたのですが、累乗は初めて知りました。覚えていて損はないかもしれませんね。

元記事を表示

PHP ヒアドキュメント

## はじめに
PHPの勉強を進めています。勉強した内容のまとめです。
自分用のまとめなので間違いや自分が完全に理解しているところに関しては省略して書いていることもあります。ご了承お願いします。

## ヒアドキュメントとは
文字列を扱う方法でテキストの改行などを保持したまま変数に代入や出力が可能になります。
コードを見れば簡単に理解できます。
“`php
$text = <<<'EOF' sample text php EOF; echo EOF; ``` ``` sample text php ``` ヒアドキュメントは<<<のあとに任意に終末端子と呼ばれるものを指定します。上記の例文だとEOFです。そして終わりも終末端子です。 終末端子内に記述した内容は改行やインデント含め保持されます。 また、終末端子を""(ダブルクオーテーション)で囲む、終末端子のみにすると変数を扱うこともできます。 ```php $name = keia; $text = <<

元記事を表示

いろいろ翻訳、JSもね。”UxTranslator”

[Symfony Component Advent Calendar 2023](https://qiita.com/advent-calendar/2023/symfony-component)の17日目の記事です。

## いろいろ翻訳、JSもね。”UxTranslator”

[UxTranslator](https://ux.symfony.com/translator)は、[Translation](https://qiita.com/ippey_s/items/0ac4a10de007960984fc)コンポーネントで使った翻訳ファイルを使って、フロントエンドも翻訳してしまうSymfony UXコンポーネントです。

### インストール

“`
composer require symfony/ux-translator
“`

### 使い方

Translationで用意した翻訳ファイル`translations/***.ja.yaml`を使いますが、こちらはIDでのみ取得できるようです。

“`yaml:translations/message.ja.yaml

元記事を表示

古のPHP5.6プロジェクトをdeployerでデプロイする

## はじめに

まだまだ現役なPHP5.6、デプロイ方法に困ることありますよね(たぶんない)
ということでPHP製の[Deployer](https://deployer.org/)を使ってデプロイする方法をご紹介します。

いい感じの前提環境は以下のとおりです。

– PHP 5.6
– CentOS 6.x
– AWS EC2
– Bastionインスタンスからデプロイを実行する
– デプロイ対象は複数インスタンス
– インスタンス利用用途ごとに異なる追加処理を行う

この記事はEOLを迎えた古の環境をなんとか生きながらえる試行錯誤のためです。
良い子の皆さんは決してこんな古いバージョンを使わないようにしましょう。
また、ここで紹介するデプロイコードはDeployer 4.x以外の環境だと動きません。
おとなしく最新版のドキュメントを読んで対応してください。

## Deployerをセットアップする

それではサクッとインストールしてみましょう。
現時点の最新バージョンは7.xですが、もちろんPHP5.6には対応していません。
諦めてギリギリ対応する最終版である4.xを使いまし

元記事を表示

PHPの基礎知識

## シングルクォーテーションとダブルクォーテーション
* シングルクォーテーション
文字列を表示するときにそのまま表示できる
“`php
$a = ‘hoge’;
echo ‘$a の中身は ‘ . $a . ‘ です。’;
/* 結果
$a の中身は hoge です。
*/
“`
* ダブルクォーテーション
文字列を表示するときに変数を展開して表示できる
“`php
$a = ‘hoge’;
echo “$a の中身は ” . $a . ‘ です。’;
/* 結果
hoge の中身は hoge です。
*/
“`

処理速度はシングルクォーテーションの方が速い
意図しない変数展開を避けるためにダブルクォーテーションの使用は必要最低限にする

## 同値比較と等値比較
* 同値比較(===, !==)
対象をデータ型まで考慮して比較できる
“`php
$a = 1;
$b = ‘1’;
if ($a ===

元記事を表示

AWS 練習 : WordPress 構築 (amazonlinux, nginx, MariaDB)

AWS の EC2 上に WordPress を構築する。

# 環境

– amazon linux 2023
– nginx 1.24
– php 8.2
– MariaDB 10.6.14 (RDS)

データベースについては、EC2 にインストールしても RDS で作成してもやることは同じだった。
単純に WordPress 構築だけを目指すなら Apache + MySQL の方が簡単らしい。

# Webサーバーの構築

WordPress のルートディレクトリを作成し、nginx + php-fpm で web サーバーを構築する。

## WordPress のソースファイルを配置

公式からソースファイルをダウンロードして任意の場所に展開。
今回はルートディレクトリを “/var/www/wordpress” とした。

“`shell
cd /var/www
sudo curl -O https://ja.wordpress.org/latest-ja.tar.gz
sudo tar xzf latest-ja.tar.gz
sudo rm lsatest-ja.

元記事を表示

各種言語のBase64文字列の取り扱い

# はじめに
各種システムとのデータ連携にあたってBase64文字列を用いるシーンが偶にあり、各言語でどういった実装をするのかを毎回悩むため整理してみました。(※サンプルコードはdockerにて動作確認済み)

# 各言語の実装

## 1.PHP

“`php:main.php

“`

“`shell
$ docker run –rm -v “$PW

元記事を表示

str_pad()関数

# str_pad()関数
| 第1引数 | 第2引数 | 第3引数 | 第4引数|
|—-|—-|—-|—-|
|入力文字列|桁数|埋める文字列|埋め方の形式|

**第4引数**
– 中寄席
STR_PAD_BOTH
– 右寄せ
STR_PAD_RIGHT

– 左寄せ
STR_PAD_LEFT
:::note info
str_pad()関数
[公式マニュアル](https://www.php.net/manual/ja/function.str-pad.php)
:::

# 実行
$value=Aでそれぞれの場合を試す
“`php
//中央寄せ
$value = “A”;
$result = str_pad($value, 5, 0, STR_PAD_BOTH);
var_dump($result);

//右寄せ
$value = “A”;
$result = str_pad($value, 5, 0, STR_PAD_RIGHT);
var_dump($result);

//左寄せ
$value = “A”;
$result = str_pad($va

元記事を表示

varchar型 自動採番について

# 目的
“S0001″などの文字列を含んだIDを生成するfunction
# フロー
[str_pad](https://www.php.net/manual/ja/function.str-pad.php)を使って文字列にデータ件数+1の数値を結合する
# テーブル
Userテーブル
| id | user_num | name |
| — | ———– | ——- |
| 1 | S001 | 山田 |
| 2 | S002 | 伊藤|
| 3 | S003 | 鈴木|

# 書いてみた

“`php
function get_member_num($dbh, $kind) {
$sql = “SELECT * FROM User”;
$stm = $dbh->query($sql);
$rows=$stm->fetchAll(PDO::FETCH_ASSOC);
$count = count($rows);

元記事を表示

PHPのFWの一つ、Laravelを勉強してみた

当記事は絶対に挫折させないアプリ開発 はじめてのLaravel(https://booth.pm/ja/items/1054217)
のメモ書きですのでオリジナリティはありませんのでご了承ください。

### はじめに
こちらは2019年に書いた記事で、何故か限定公開になってましたので公開いたしました
Laravelを使い始めてはや3年になります
時間の流れは早いですねぇ

# Laravelとは何か

### フレームワークとは
“`
フレームワークは簡単にいうと、アプリケーションの土台となるライブラリです。
フレームワークを使った開発ではアプリケーションの基本的な流れが最初から出来上がっており、
その流れの中に必要に合わせて処理を組み込んでいきます。
フレームワークが用意されていれば、アプリケーションを作成するときに無駄な処理を記述せず
本当に必要な処理を注力できる。 パーフェクトPHP p.198
“`

##### アプリ実装の労力の軽減
データベースやログインなど、どのアプリケーションでも共通利用する処理や機能
をあらかじめ土台として用意しておくことで、開発者の労力を軽減

元記事を表示

エラー: Array callback must have exactly two elements

このエラーが出たら、こんなミスをしているかもしれません。
![ero.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309843/c9454c7e-5c97-d7ca-1ee4-7a1aa320bbc0.jpeg)

PHPは、echoの行でエラーが出て止まっていますが、
array_key_existsを使っていますから、$customerRanksは、キーをもつ配列なのです。

配列から値を取り出すには、[]を使わないといけません。ただそれだけの、書きミスという事です。

“` membership.php
if(is_numeric($parameters[‘rank’]) && array_key_exists($parameters[‘rank’], $customerRanks))
echo “会員ステータス:”.$customerRanks($parameters[‘rank’]);
endif
“`

これは
“`
$customerRanks($parameters[‘

元記事を表示

なでしこ3はPythonより6.5倍速い!ベンチマークしてみました

なでしこの実行速度が話題になっていたので、久々に、手元にあるMacbook Pro(m1)でベンチマークしてみました。なでしこ3のPC版(Node.js版)と各種スクリプト言語を比較してみましょう。

# 再帰処理フィボナッチ勝負

まずはフィボナッチで試してみましょう。

## なでしこ3

なでしこ3.4.24で試してみました。

“`nadesiko:fib.nako3
●FIB(Nの)
  もし、N<2ならばNで戻る。   ((N-1)のFIB)+((N-2)のFIB)で戻る。 ここまで。 (40のFIB)を表示。 ``` 実行してみると、下記のように4秒かかりました。 ``` time cnako3 fib.nako3 102334155 cnako3 fib.nako3 3.94s user 0.05s system 98% cpu 4.078 total ``` ## Python3 次に、Python 3.9.7で試してみます。速度には影響しないものの、タイプヒントも付けてみました。 ```python:fib.py def fib(n:int) -> in

元記事を表示

外部サービスからのイベントを受け取るよ(後編)、”RemoteEvent”

[Symfony Component Advent Calendar 2023](https://qiita.com/advent-calendar/2023/symfony-component)の16日目の記事です。

## 外部サービスからのイベントを受け取るよ、”RemoteEvent”

[RemoteEvent](https://github.com/symfony/remote-event)は、外部サービスからのイベントを『リモートからのイベント』とみなし、イベントを発火させるコンポーネントです。

### インストール

“`
composer require symfony/remote-event
“`

### 使い方

Symfonyの偉い人は考えました。『Webhookって要はリモートからのイベントじゃん。』
webhookでSymfonyにアクセスされた時、それを`RemoteEvent`に置き換えてイベント発火させ、処理を行います。処理の流れはこんな感じです。

1. 外部サービスのwebhookを解析する`RequestParser`を作る
1. 解析

元記事を表示

PHP ぼやき日記 2023-12-15

[前回](https://qiita.com/sj-i/items/ea5df5e11926406b56d1)

不定期に誰に向けるでもなく PHP に関する雑な殴り書きをしている。日付が変わってから変わる前の日付の奴だと言い張って投稿するくらいの雑さ加減。

# private class const あるから local const いらないんじゃない?って言われた
– https://phpc.social/@Crell/111574253159763975
– 俺もなんかそんな気もする
– あとなんかもう一人コメントくれた Russel のひとの[予見](https://phpc.social/@zimzat@mastodon.social/111574636631512790)が秀逸かつ辛辣で笑った
– いわく、「まず変数の使いまわしを防ぐよう皆デフォで使いはじめるよね」
– 「次は型宣言もつけようぜってなるよね、はい別 RFC」
– 「`$` が嫌いな連中も途中から気に入りはじめて、次の RFC は仮引数に定数を使えるようにする奴だろうね」

元記事を表示

Twigで日付を計算する方法

## 概要
LaravelやPHPでTwigテンプレートを使用した際に、テンプレート内で日付の計算(加算、減算)をする方法

## 使用方法

– `date_modify`フィルターを使用する
– `day`は日付型の値が代入されている変数
– `day`を基準日として加減算を行う
“`.twig
{#日加算#}
{{ day|date_modify(“+1 day”)|date(“m/d/Y”) }}

{#日減算#}
{{ day|date_modify(“-1 day”)|date(“m/d/Y”) }}

{#月加算#}
{{ day|date_modify(“+1 month”)|date(“m/d/Y”) }}

{#月減算#}
{{ day|date_modify(“-1 month”)|date(“m/d/Y”) }}

{#年加算#}
{{ day|date_modify(“+1 year”)|date(“m/d/Y”) }}

{#年減算#}
{{ day|date_modify(“-1 year”)|date(“m/d/Y”) }}

“`
### 応

元記事を表示

外部サービスからのイベントを受け取るよ(前編)、”Webhook”

[Symfony Component Advent Calendar 2023](https://qiita.com/advent-calendar/2023/symfony-component)の15日目の記事です。

## 外部サービスからのイベントを受け取るよ、”Webhook”

[Webhook](https://github.com/symfony/webhook)は、外部サービスからのイベントをWebhookで受け取るコンポーネントです。

### インストール

“`shell
composer require symfony/webhook
“`

### 使い方

メールサービスなどのSaaSなサービスは、サービス内で起こったイベントをきっかけに設定したWebhookを呼び出す機能があったりします。通常であれば、その受け取るWebhookを実装していくのですが、Webhookコンポーネントを使えば簡単に実装できます。

まず、Webhookを受け取った際の処理を行うConsumerを作っていきます。`ConsumerInterface`を実装します。

“`p

元記事を表示

OTHERカテゴリの最新記事