About
reference
php(1)
php -a
でインタラクティブシェルに入るphp -r
で引数に渡された任意のPHP処理を実行する ex)php -r "echo 'hoge';"
php -m
で使用可能なすべてのPHPモジュールの一覧を出力
文法
よく使う関数
- var_dump https://online.dhw.co.jp/kuritama/function-tools-be-used-for-debugging-php/
- isset, unset http://vbnettips.blog.shinobi.jp/php/php%20標準関数その2・変数の存在チェック及び解除を
型システム
- 変数宣言時に型の宣言は強制されない。*1また、暗黙的に型変換が実行される。
- PHP7から、厳格に型を検査するstrict modeが導入された
名前空間
namespace
命令で宣言- クラス名の衝突を避けるための機能
- 階層化ができる。デリミタにはバックスラッシュ
\
が使われる - 同一名前空間内であれば、名前空間(アドレス)を省略して呼び出すことができる
- 言語上のルールではないが、実際のクラスファイルが置かれているクラスパスと合わせることが推奨されている*2
use
と require_once
アンダースコアから始まる変数は何か
- こういうの ->
$_COOKIE
$_hogehoge
- スーパーグローバル変数以外のパターンには機能的な意味はない
アンダースコア×2から始まるメソッドは何か
- こういうの →
public function __set(string $name, mixed $value) : void {}
- マジックメソッドと呼ばれるタイプのメソッド。詳細は、『独習PHP 第4版』P555を参照
PHPがWebサーバー上で動作する仕組み
apcheとNGINXで異なる模様。apacheの場合は以下。
PHPをインストールすると自動的にPHPモジュールもインストールされApacheはデフォルトでそのPHPモジュールを読み込みにいく https://zenn.dev/bs_kansai/articles/3706c12408160c
上記に該当するのが以下と思われる。
$ apache2ctl -M | grep -i php php7_module (shared)
また、php-fpmで動かす場合は、上記とは異なりブラウザと別プロセスでPHPが実行される。
https://qiita.com/kouki_o9/items/4a88cdc30c604373e9ac
UbuntuへのInstall
まず、PPAリポジトリを追加する。 ※apache2を使うため、 ondrej/apache2
も入れてみたが必須かどうかはよくわかっていない
$ sudo add-apt-repository ppa:ondrej/php $ sudo add-apt-repository ppa:ondrej/apache2
次にPHP7.3をinstallし、動作確認する。
$ sudo apt install php7.3 php7.3-common php7.3-cli php7.3-fpm php7.3-sqlite php7.3-mysql php7.3-dev php7.3-mbstring php7.3-zip php7.3-curl php7.3-gd php7.3-xml php7.3-intl php7.3-fpm $ php -v PHP 7.3.33-16+ubuntu22.04.1+deb.sury.org+1 (cli) (built: Apr 11 2024 22:12:07) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.33, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.33-16+ubuntu22.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
composer
comoserはPHPにおいて利用されるパッケージマネージャーである。
install方法
composerの公式ページの手順を実施する。
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" $ php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" Installer verified $ php composer-setup.php All settings correct for using Composer Downloading... Composer (version 2.7.3) successfully installed to: /tmp/composer.phar Use it: php composer.phar $ php -r "unlink('composer-setup.php');" $ sudo mv composer.phar /usr/local/bin/composer $ which composer /usr/local/bin/composer $ composer -v ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 2.7.3 2024-04-19 21:40:57 (略)