🎃

PHP

2025/03/01に公開

設定ファイルはphp.ini

php.iniは、PHPプログラムの全体的な動作や環境を設定するファイルのことである。
ここで、文字コードやタイムゾーンなどを設定できる。

==と===の違い

==は値
===は値とデータの型

// ==検証
// trueになる
if(1 == '1') {
    echo 'true';
} else {
    echo 'false';
}

// ===検証
// falseになる
if(1 === '1') {
    echo 'true';
} else {
    echo 'false';
}

falsy(フォールシー)

falsyとは、型がbooleanではないがfalseになる値のこと
具体的には以下などがある。
"" (空文字)
0 (数値、文字列)
NULL

isset, empty, is_null早見表

https://qiita.com/shinichi-takii/items/00aed26f96cf6bb3fe62

phpinfo()でPHPの情報や設定情報を確認する。

<?php 
phpinfo();
 ?>

phpinfo()は以下の場合などに使用する。

  • PHPが作動していているかの確認したいとき
  • PHPのバージョンを確認したいとき
  • php.iniファイルを探したいとき
  • php.iniに設定されている内容を変更したとき

print_rで連想配列を分かりやすくになる

https://www.sejuku.net/blog/23012

foreachのindexと値を取得する

下のソースだと、
$iがindex
$vが値
を表している

ソース

<?php 
$arry = ['taro', 'hanako', 'jiro'];
 
foreach($arry as $i => $v) {
    echo '<div>', $i, $v, '</div>';
}
?>

結果

0taro
1hanako
2jiro

globalでローカル変数をグローバル変数にする

https://uxmilk.jp/14993

null合体演算子で、Nullの場合のとそうでない場合の値の設定を簡単に記載する

https://laranote.jp/php-null-coalescing-operator-explained/

定数のconstとdefineの違い

https://qiita.com/schrosis/items/485b984e05b2eb4521b4

関数が定義しているか確認する

function_existsで可能
https://qiita.com/miriwo/items/c884b3ca6cfb3ccfbe95

外部ファイルを読み込む際の、includeとrequireとrequire_onceの違い

file.php

<?php
$arry['num']++;

include

読み込んだファイルが存在しなくても処理が継続し、警告が表示される。
index.php

<?php
$arry = [
    'num' => 0
];

include 'file.php';//存在しない
echo $arry['num'];

結果

require

読み込んだファイルが存在しなくても処理が継続せずエラーが出る。
index.php

<?php
$arry = [
    'num' => 0
];

require('file.php');//存在しない
echo $arry['num'];

結果

require_once

requireと同じですが、同じファイルを複数回読み込まないようにする点が異なります。
ファイルがすでに読み込まれている場合、そのファイルは再度読み込まれません。
index.php

<?php
$arry = [
    'num' => 0
];

require('file1.php');
require('file1.php');
echo $arry['num'];

結果

名前空間(namespace、use function、use const)

https://qiita.com/7968/items/1e5c61128fa495358c1f

遅延静的束縛 static/self/parent

https://maeharin.hatenablog.com/entry/20130202/php_late_static_bindings

declare(strict_types=1)で自動変換を行わず、異なった型が渡された場合エラーが起き処理が止まる

<?php
declare(strict_types=1);
function sum(int $a, int $b) {
    return $a + $b;
}

var_dump(sum(1.5, 2.5));

実行結果

Fatal error: Uncaught TypeError: Argument 1 passed to sum() must be of the type int, float given,

_GET(_POSTも同様)

以下のファイルに遷移し、usernameとpwdを入力してボタン押下すると

<form action="get.php">
    <input type="text" name="username">
    <input type="password" name="pwd">
    <input type="submit" value="ボタンを押してね">
</form>

以下のソースに遷移する。

<div>
    名前:<?php echo $_GET['username']; ?>
</div>
<div>
    パスワード:<?php echo $_GET['pwd']; ?>
</div>

以下の画面になる。

Formで配列使用し、まとめて送る

index.php

<form action="receive.php" method="POST">
    <div>
        <input type="text" name="account[id]">
    </div>
    <div>
        <input type="text" name="account[name]">
    </div>
    <div>
        <input type="text" name="account[pwd]">
    </div>
    <input type="submit">
</form>

receive.php

<?php 
$account = $_POST['account'];
$id = $account['id'];
$name = $account['name'];
$pwd = $account['pwd'];
echo $id, $name, $pwd;
?>

Discussion