PHP関連のことを調べてみた2021年08月27日

PHP関連のことを調べてみた2021年08月27日

【PHPの基本】関数とは

#はじめに#
 今回はPHPの関数について見ていきたいと思います。
我々初学者が最初につまづくポイントの一つでもあると思うので、自分なりにまとめて、しっかり定着させていきたいと思います。

#関数とは#
 PHPでは下記のように書きます。

“`php:sample.php
function addition($x,$y)
{
$sum = $x + $y;
return $sum;
}

echo addition(2, 5);
“`

 functionとすることで**関数**が定義されます。()内には**引数**、{}内に処理を書き、returnは**戻り値(または返り値)**を示しています。そしてその関数を使いたい場面で実行します。実行する際は上記のように関数名(引数)とすることで実行できます。ちなみに引数は必要ないこともありますので必要に応じて使っていきましょう。

 用語について、一つずつ見ていきましょう。

 関数:処理をひとまとめにして好きな場所で使いまわせるようにしたもののこと。
 引数:関数内で使われる値のこと。
 戻り値(返り値):関数の結果のこと

元記事を表示

PHPのスコープ

PHPでグローバルスコープ、ローカルスコープを学習したので忘れないように備忘録として残していきます。

##グローバルスコープ
開発環境の全てに影響を及ぼす変数(スコープ外の変数)

“`php
$globalScope = ‘グローバルな変数です’;

function localScope()
{
$localScope = ‘ローカルな変数です’;
echo $localScope;
}

echo $globalScope;
“`

`echo $globalScope;`で「グローバルな変数です」と表示されます。

グローバル変数を関数内で直接は使用することはできません。
関数内で直接使用するには関数内で

“`php
function localScope()
{
global $globalScope;
$localScope = ‘ローカルな変数です’;
echo $localScope;
}
localScope();
“`

関数内の$globalScopeの前に`global`をつけることで関数の中で記述した変数を呼ぶことができ

元記事を表示

【実務で使えるLaravel】プルダウンをスマートに作成しよう

Laravelで実務で使えるスマートなプルダウンを紹介していきます。

#開発環境
Docker 20.10.7
PHP 7.4.22
Laravel 8.53.1
mySQL 5.7
データベースのツール phpmyadmin

#想定するもの
本を管理するアプリを想定しており、「カテゴリーのプルダウンを作成してほしい」という依頼がきたとします。

プルダウンは以下を想定
![スクリーンショット 2021-08-26 22.35.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1693248/fce1bcaa-4dae-3e73-8fd1-1ad28288ab31.png)
![スクリーンショット 2021-08-26 22.36.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1693248/623fb7fc-e800-b347-90df-98a9ff02fb6d.png)

#初心者が書きがちなプルダウンの

元記事を表示

Composerのインストール方法【macOS編】

#はじめに
Composerとは、PHPを利用するためのパッケージ管理ツールです。
Laravelでアプリを作る前にインストールしておく必要があるので、今回はComposerのインストール方法について説明します。

#Composerのインストール方法
基本的には、公式ホームページに載っているマニュアルどおりなのですが

1) 以下の公式ホームページにアクセスします。
 公式ホームページ→ [Composer](https://getcomposer.org/)
2) 「Download」をクリックします。
3) 3行目くらいにある以下のコマンドをターミナルで実行することで、composer.pharというファイルが作成されます。

“`PHP:PHP
php -r “copy(‘https://getcomposer.org/installer’, ‘composer-setup.php’);”
php -r “if (hash_file(‘sha384’, ‘composer-setup.php’) === ‘756890a4488ce9024fc62c56153228907f1

元記事を表示

【初学者向け】まとめておさえるPHPの基本

#はじめに#
 PHPとは、サーバーサイド言語と呼ばれるものの一つで、ブラウザ上ではなくサーバーサイドで動き、さまざまな動的なWebページの生成やデータベースの処理などをやってくれます。

 動的なWebページとは、ページにアクセスした時の状況によって異なる内容が返されるWebページのことです。例えば、ログインが必要なSNSやショッピングサイトなどは人によって違う内容のページが表示されます。

 ちなみに静的なWebページとは、いつ誰が見ても同じ内容のページが表示されます。例えば企業のホームページなどです。

 PHPはデータベースからデータを取ってきて、状況に応じて異なるHTMLを生成するための言語になります。
 今回はそんなPHP(というよりプログラミング言語全般)を使うための最も基本的な2つの機能、「繰り返し」と「条件分岐」についてご紹介していきたいと思います。

#繰り返し#
 繰り返しには「for」「while」「foreach」の3種類があります。

##for文##

“`php:for.php
for($i = 1; $i <= 10; $i++) {

元記事を表示

システムのPHPを5系から7系へバージョンアップする際に修正が必要な関数メモ

システムのPHPを5系から7系へバージョンアップする際に修正が必要な関数をメモ。

“`.php
ereg()
eregi()
ereg_replace()
mysql_affected_rows()
mysql_error()
mysql_fetch_assoc()
mysql_free_result()
mysql_real_escape_string()
mysql_fetch_row()
mysql_fetch_array()
mysql_num_rows()
mysql_query()
mysql_insert_id()
mysql_connect()
mysql_select_db()
session_register()
session_unregister()
split()
“`

元記事を表示

[Laravel 8] Eloquent Modelのfillableとguarded

It is necessary to specify either a fillable or guarded property on your model class. These properties are required because all Eloquent models are protected against mass assignment vulnerabilities by default.

$fillable

To get started, you should define which model attributes you want to make mass assignable. You may do this using the $fillable property on the model.

“`Models\Student.php
protected $fillable = [‘first_name’,’last_name’];
“`

$guarded

If you would like to make all of your

元記事を表示

PHP の型宣言は変数の型のチェックではない

タイトルのとおりです。

https://3v4l.org/iObP4

“`php

元記事を表示

【PHP入門】型と変数について

PHP入門!!
ということで今日は型と変数についてお話します

まずは代表的なスカラー型を紹介します

| 型の名前 | 型の表示 | 型の例|
|:———–:|:————:|:————:|
|論理型|boolean|True/False|
|整数型|integer|1,2,46|
|浮動小数点型|float,double|3.14/1.34|
|文字列型|string|AA/aaa/Hello|

別でNULL(ヌル)というものを説明します

次に、変数について説明していきます
変数とは箱のようなものです。
プログラムではこの箱の中に何が入っているのかを確認して理解します

PHPでは変数を受け取る時に$変数名になります

“`index.php

“`
“`結果
山田太郎
`

元記事を表示

PHPの便利な関数

# 概要
PHPが用意している便利な関数について投稿した記事一覧

# 記事一覧
#### [PHPの便利な関数(1)](https://qiita.com/andota05/items/41bbe57d30a1b9fbc4f3)

* ini_set( )
* require( )
* require_once( )
* array( )
* define( )

#### [PHPの便利な関数(2)](https://qiita.com/andota05/items/e9ccf79711775243979e)

* mb_strlen( )
* mb_strtolower( )
* mb_strtoupper( )
* trim( )
* file_exists( )

#### [PHPの便利な関数(3)](https://qiita.com/andota05/items/4488851f39a2b1fcb3fd)

* fopen( )
* fgets( )
* fclose( )
* array_merge( )
* impload( )

元記事を表示

PHPの便利な関数(3)

# 概要
PHPが用意している便利な関数について、忘備録として記載していく。
また、PHP7系を前提とする。

# ラインナップ
* fopen( )
* fgets( )
* fclose( )
* array_merge( )
* impload( )

## fopen( )
* ファイルまたは ファイルが存在するURL をオープンする(開く)
* 第一引数に開きたいファイルの指定、第二引数にオープンモードを指定
* オープンモードは「r (読み込みのみ)」「w (書き込みのみ)」などが存在する

https://www.php.net/manual/ja/function.fopen.php

“`read.txt
読み込まれた
“`

“`test.php
// 例:read.txtを読み込みようとして開く
$read_file = fopen(__DIR__ . ‘/read.txt’, ‘r’);
echo fgets($read_file);
“`

“`
php ./test.php
読み込まれた
“`

## fgets( )
* ファイルポインタから1

元記事を表示

PHPの便利な関数(2)

# 概要
PHPが用意している便利な関数について、忘備録として記載していく。
また、PHP7系を前提とする。

# ラインナップ
* mb_strlen( )
* mb_strtolower( )
* mb_strtoupper( )
* trim( )
* file_exists( )

## mb_strlen( )
* 文字列の長さを取得可能

https://www.php.net/manual/ja/function.mb-strlen.php

“`test.php
// 変数strの長さを取得
$str = “3文字”;
echo mb_strlen($str);
“`

“`
php ./test.php
3
“`

## mb_strtolower( )

* 文字列(アルファベット)を全て小文字にする
* ひらがな、数字、記号はそのまま

https://www.php.net/manual/ja/function.mb-strtolower.php

“`test.php
// 変数strを小文字に変換
$str = ‘ABCDEFG’;
ech

元記事を表示

PHPの便利な関数(1)

# 概要
PHPが用意している便利な関数について、忘備録として記載していく。
また、PHP7系を前提とする。

# ラインナップ
* ini_set( )
* require( )
* require_once( )
* array( )
* define( )

## ini_set( )
* PHPの設定を設定ファイル(php.iniなど)を触らずに、指定可能
* ini_get( )で設定情報を取得可能

https://www.php.net/manual/ja/function.ini-set.php

“`test.php
// 例:PHPのメモリ使用上限を設定
ini_set(‘memory_limit’, ‘2048M’);
echo ini_get(‘memory_limit’); // 2048M
“`

## require( )

* 機能を分割した.phpファイルなど外部ファイルを読み込む
* .phpファイルでなくても読み込み可能

https://www.php.net/manual/ja/function.require.php

“`requir

元記事を表示

Vueでお絵かきアプリ作成4(canvas使用)

#趣向
vueでお絵かき機能を作成する機会があったため作ってみました!
![スクリーンショット 2021-08-15 17.37.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/843952/9ffc5175-6583-9e15-6d03-252324b66008.png)

#3の続き
[前回の3はこちら](https://qiita.com/ryotaro_tech/items/3726db3213d4932c76c1)
このページでは「「リセット」と「画像ダウンロード」とデータを「更新」、「取得」できるようにしたいと思います。

まずはいつもどおりhtml。画面に「リセット」、「画像ダウンロード」、「更新」ボタンを追加します。
また、更新したら更新した画像が次回から背景になる感じですね。

“`HAML:html


元記事を表示

phpstanを用いた際のエラー解消

##~ no value type specified in iterable type array のエラー
以下のエラーに対する改善方法
自分的な解釈では”配列の中身の値に対しても型指定してください”みたいなイメージ

“`
5 Function saleByTime() return type has no value type specified in iterable type array.
? See: https://phpstan.org/blog/solving-phpstan-no-value-type-specified-in-iterable-type
“`

解消後のコードは以下の通り

“`php
// 以下の*部分3行の記述で返り値である$priceの連想配列の中身のキー、値に対する型を指定することで上記のエラーは解消される
/**
* @return array $unitSo

元記事を表示

php artisan optimize コマンドの罠

###php artisan optimize とphp artisan optimize:clearの違いについて

自分自身optimizeコマンドに関して大きく勘違いしており、上記のコマンド(optimize,optimize:clear)は同じであると思っていた。
実際にコマンドを打ってみると分かるが、出てくる内容は全く異なるものである。

“`
# php artisan optimize:clear
Cached events cleared!
Compiled views cleared!
Application cache cleared!
Route cache cleared!
Configuration cache cleared!
Compiled services and packages files removed!
Caches cleared successfully!
“`
“`
# php artisan optimize
Configuration cache cleared!
Configuration cached successful

元記事を表示

php artisan migrate でSQLSTATE[HY000] [2002]のエラーが出る

# はじめに
一度、コンテナなどをdownした後にもう一度upして`migrate`しようとすると、エラーになったので解決した方法をメモします。
いち解決方法なのでご参考になれば幸いです。

# 条件
“`bash
mac OS “11.2.3 Big Sur”
Laravel Framework “6.20.27”
PHP “8.0.7”
nginx “1.18”
mysql “8.0”
“`

# php artisan migrate ができなくなった

“`terminal
❶ docker-compose down
Stopping web_1 … done
Stopping app_1 … done
Stopping db_1 … done
Removing web_1 … done
Removing app_1 … done
Removing db_1 … done
Removing network lantern_default

❷ docker-compose up -d
Creating app_1 … done
Creati

元記事を表示

【Laravel 8 / Sail / Fortify / Sanctum】タスク管理アプリ (ポートフォリオ) の実装過程 (バックエンド編)

主にスキル向上を目的に、ポートフォリオとしてタスク管理アプリを作成しました。このページでは、主にそのバックエンド部分の実装過程について触れていきます。

アプリケーションや作成したコード、フロントエンドの実装過程の説明については、以下のリンクからアクセスできます。

– アプリケーション: [https://www.miwataru.com/](https://www.miwataru.com/)
– GitHub: [https://github.com/zuka-e/laravel-react-task-spa](https://github.com/zuka-e/laravel-react-task-spa)
– 全体像: [https://qiita.com/zuka-e/items/9a985f0dd5db21bc48d7](https://qiita.com/zuka-e/items/9a985f0dd5db21bc48d7)
– フロントエンド実装過程: [https://qiita.com/zuka-e/items/60afcc09464e1016233

元記事を表示

PHP MAMPエラー解除方法

:::note info
MAMPを開きたい。 
:::
![スクリーンショット 2021-08-25 16.16.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861207/518efa0b-ccc0-8521-7eca-a31894f9d2fd.png)

1 . ホームディレクトリから以下コマンドを実行。

“`ruby:コマンド
sudo lsof -i -P | grep “LISTEN”
“`
2 . パスワードを求められるので入力。
  ( PCのロック解除するパスワード )

3 . ポートの状態が一覧で表示されるので、ここで8888が使われているものを以下のコマンドで削除。

“`ruby:コマンド
kill -9 番号
“`

4 . 全て消し終えたところで再びMAMP起動。

元記事を表示

Laravel8 CRUD+検索機能のテストコード実装

##初めに
こちらの記事では、僕がPF作成で実装したCRUD+検索機能のテストコードについてご紹介します。
正直テストコードはかなり苦戦し、現役エンジニアの方に質問させてもらいながらやっとの思いで実装しました。。
公式ドキュメントや紹介されている記事でやり方がなんとなく分かったとしても、自分の実装したロジックに対してどのようなテストを書くかは自分で考えなくてはいけません。
現役エンジニアの方に言われたのですが、この辺りはテストを書く経験を積むことで養われるので、最初のうちはかなり時間がかかるようです。
人によってロジックが違う分テストの内容も変わってくるので、この記事が少しでも自身のテストを書く際に参考になってもらえると幸いです!

##HTTPリクエスト
###ステータスコード
今回のメインはデータベースのテストになりますが、簡単にHTTPリクエストのテストもご紹介しておきます。
テスト内容:`設定したルートにアクセスした際に想定のステータスコードが返ってくるか`
ログイン者しか使用できない機能に関しては`302`が返ってくるかで、誰でもアクセスできる場合は`200`が返ってくるか確

元記事を表示

OTHERカテゴリの最新記事