📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
細 文字列「__FORCETOC__」を「{{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This pag… |
|||
| 361行目: | 361行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
== 変数の削除 == | |||
==== unset関数 ==== | |||
unset関数は、変数や配列の要素を破棄するための関数である。<br> | |||
<br> | |||
<u>これは、nullを代入するのとは異なり、変数そのものを削除することに注意する。</u><br> | |||
変数を完全に破棄するため、メモリが解放される。<br> | |||
<br> | |||
最も一般的な使用方法は、単純な変数の破棄である。<br> | |||
<syntaxhighlight lang="php"> | |||
$name = "John"; | |||
unset($name); // $nameという変数が破棄される | |||
// 複数の変数を同時に解除 | |||
$a = 1; | |||
$b = 2; | |||
unset($a, $b); // 複数の変数を1度に破棄することもできる | |||
// unset後にisset関数で確認する場合、falseを返す | |||
isset($a) | |||
</syntaxhighlight> | |||
<br> | |||
配列の場合、特定の要素を削除することができる。<br> | |||
<u>ただし、要素を削除しても配列のインデックスは自動的には詰められない。</u><br> | |||
<syntaxhighlight lang="php"> | |||
$fruits = ["apple", "banana", "orange"]; | |||
unset($fruits[1]); // "banana"が削除される | |||
// 結果: array(0 => "apple", 2 => "orange") | |||
</syntaxhighlight> | |||
<br> | |||
また、セッション変数を破棄することもできる。<br> | |||
例えば、ユーザのログアウト処理等で使用されることが多い。<br> | |||
<syntaxhighlight lang="php"> | |||
unset($_SESSION['user_id']); // 特定のセッション変数を破棄 | |||
</syntaxhighlight> | |||
<br> | |||
オブジェクトのプロパティを削除することもできる。<br> | |||
<syntaxhighlight lang="php"> | |||
class User { | |||
public $name; | |||
} | |||
$user = new User(); | |||
$user->name = "John"; | |||
unset($user->name); // プロパティを削除 | |||
</syntaxhighlight> | |||
<br> | |||
関数内でグローバル変数をunsetする場合は、<code>global</code>キーワードを使用しない限り、関数内でのunsetはローカルスコープにのみ影響を与える。<br> | |||
<syntaxhighlight lang="php"> | |||
$global_var = "test"; | |||
function removeGlobal() { | |||
global $global_var; // globalキーワードが必要 | |||
unset($global_var); | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
大規模なアプリケーションでメモリ管理を最適化する場合にunset関数が重要な役割を果たす。<br> | |||
特に、大きな配列やオブジェクトを扱う場合、不要になったデータを適切にunsetすることにより、メモリ使用量を抑えることができる。<br> | |||
<br> | |||
==== array_splice関数 ==== | |||
なお、配列の要素を削除する場合の代替手段として、array_splice関数がある。<br> | |||
<u>これは、インデックスを自動的に詰めることができる。</u><br> | |||
<syntaxhighlight lang="php"> | |||
$array = [1, 2, 3]; | |||
// 出力: [1, 3] | |||
array_splice($array, 1, 1); // インデックスを詰めて削除 | |||
</syntaxhighlight> | |||
<br> | |||
配列の要素を削除するだけでなく、置換、挿入等の様々な配列操作に柔軟に対応できる便利な関数である。<br> | |||
unset関数と異なり、インデックスが自動的に詰められる特徴があるため、連続したインデックスを維持したい場合に特に有効である。<br> | |||
<br> | |||
array_splice関数の基本的な構文を以下に示す。<br> | |||
<syntaxhighlight lang="php"> | |||
// 基本的な構文 | |||
array_splice(array &$array, int $offset [, int $length = null [, mixed $replacement = array() ]]); | |||
</syntaxhighlight> | |||
<br> | |||
* 第1引数 | |||
*: 操作対象の配列 | |||
*: 参照渡しで渡すため、元の配列が直接変更される。 | |||
*: <syntaxhighlight lang="php"> | |||
$fruits = ['apple', 'banana', 'orange', 'grape']; | |||
array_splice($fruits, 2); // 配列fruitsが直接変更される | |||
</syntaxhighlight> | |||
*: <br> | |||
* 第2引数 | |||
*: 変更を開始する位置を指定する。 | |||
*: 正の数の場合は配列の先頭、負の数の場合は末尾からカウントする。 | |||
*: <syntaxhighlight lang="php"> | |||
$colors = ['red', 'blue', 'green', 'yellow']; | |||
array_splice($colors, 1); // 先頭から1番目以降を削除 | |||
// 出力: ['red'] | |||
array_splice($colors, -2); // 末尾から2つを削除 | |||
// 出力: ['red', 'blue'] | |||
</syntaxhighlight> | |||
*: <br> | |||
* 第3引数 | |||
*: 省略可能 | |||
*: 削除する要素の数を指定する。 | |||
*: 省略する場合は、開始位置から配列の末尾まで全ての要素が対象となる。 | |||
*: <syntaxhighlight lang="php"> | |||
$numbers = [1, 2, 3, 4, 5]; | |||
array_splice($numbers, 1, 2); // 1番目の位置から2つの要素を削除 | |||
// 結果: [1, 4, 5] | |||
</syntaxhighlight> | |||
*: <br> | |||
* 第4引数 | |||
*: 省略可能 | |||
*: 削除した箇所に新しい要素を挿入できる。 | |||
*: <syntaxhighlight lang="php"> | |||
$pets = ['dog', 'cat', 'bird']; | |||
array_splice($pets, 1, 1, ['hamster', 'rabbit']); | |||
// 結果: ['dog', 'hamster', 'rabbit', 'bird'] | |||
</syntaxhighlight> | |||
<br> | |||
実際の使用例として、配列の特定の位置に要素を挿入する場合がある。<br> | |||
<syntaxhighlight lang="php"> | |||
$menu = ['coffee', 'tea', 'juice']; | |||
// lengthを0にすることで、要素の削除なしで挿入できる | |||
// 出力: ['coffee', 'latte', 'tea', 'juice'] | |||
array_splice($menu, 1, 0, 'latte'); | |||
</syntaxhighlight> | |||
<br> | |||
この関数の特徴は、削除された要素を戻り値として返すことである。<br> | |||
<syntaxhighlight lang="php"> | |||
$items = ['A', 'B', 'C', 'D']; | |||
$removed = array_splice($items, 1, 2); | |||
// $removedは ['B', 'C'] | |||
// $itemsは ['A', 'D'] | |||
</syntaxhighlight> | |||
<br><br> | |||
{{#seo: | {{#seo: | ||