【PHP日記】

自分の知識不足を悟った末、なるべく1日一回、Webに関する知識を書いていくだけのブログ。

PHP雑学⑧ 【27日目】

PHPを学び始めた素人目線での、大事だったり大事じゃなかったりする雑知識メモ、その⑧です。


メモリアドレスを変数に代入する

このようなコードがあった場合、変数aには $c のメモリアドレスが代入されるため、$c の値が変われば、変数aの値を代わります。

$a = 1;
$c = 3;
$a = &$c;
$c++;
echo $a;    // 4



配列のキーは整数型にキャストされる

PHPの配列では、整数キーと文字列キーが同一視されるため、キーが '1' の文字列でも 1 の整数でも、内部的には同じ扱いになります。

<?php
   $fruitNumbers = [
       '2' => 'two',
   ];
   
   $numberFruits = [
       2 => 'two',
   ];

   print_r($fruitNumbers);
   print_r($numberFruits);

   var_dump($fruitNumbers === $numberFruits);
?>
Array
(
    [2] => two
)
Array
(
    [2] => two
)
bool(true)



dirname(--FILE--)の意味

phpdirname()は、指定されたファイルが存在する親ディレクトリのパスを取得する関数です。

require_once dirname(__FILE__) . './../vendor/autoload.php';

引数にマジック定数__FILE__を指定した場合、絶対パス表記の現在のファイル名を表すため、『この関数を呼び出したファイルが存在するディレクトリのパス』を取得することになります。



以上です。



参考文献

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