タグ

2023年8月10日のブックマーク (75件)

  • KDDIや富士通・NECなど5社、通信分野へのSBOM導入に向けた実証事業を開始

    KDDI、KDDI総合研究所、富士通NEC、三菱総合研究所は2023年8月1日、5G(第5世代移動通信システム)やLTEネットワーク機器などを対象例とした通信分野におけるSBOM(Software Bill of Materials)導入に向けた実証事業を開始すると発表した。SBOMは特定の製品に含まれるすべてのソフトウエアコンポーネント、ライセンス、依存を一覧化したもので「ソフトウエア部品表」とも呼ばれる。 KDDIが総務省から「通信分野におけるSBOMの導入に向けた調査の請負」を受託したことを受けて取り組むもので、通信分野におけるサイバーセキュリティー強化を目的とする。実証ではSBOMを使ってソフトウエア・サプライチェーンを把握し、脆弱性などへの迅速な対応を実現するとしている。各社の役割分担としては、三菱総合研究所が国内外の動向調査や通信分野へのSBOM導入に向けたガイドライン案を検

    KDDIや富士通・NECなど5社、通信分野へのSBOM導入に向けた実証事業を開始
  • 「あなたは優秀だが当社に合わない」という不採用通知こそが危ない理由

    関連キーワード 人事 IT業界において、有色人種の従業員はキャリアアップの面でさまざまな課題に直面している。IT人材採用コンサルタント企業Templeton and Partnersのマーケティングディレクターであるエイミー・トレジャー氏が挙げる課題の一つは、雇用者側が指摘しがちな「カルチャーフィット」(組織の価値観や理念に対する適応性)に関連しているという。どういうことなのか。 「この人は違う」が生む差別意識とは 併せて読みたいお薦め記事 連載:IT業界でD&Iが進まない理由 第1回:人種的マイノリティーの昇進を妨げる「ガラスの天井」の実態 第2回:「有色人種のITエンジニア」が直面する“不都合な真実” 業界が取り組むD&I 多様性、公平性、包摂性「DEI」の“押し付け”がむしろ分断を広げてしまう現実 「多様性のある人材採用」を口先だけにしないために“当に大切なこと” 黒人技術者がほぼ

    「あなたは優秀だが当社に合わない」という不採用通知こそが危ない理由
  • 「大学はあなたを見捨てた」――名門大学生に届いた“怪しいメール”の正体

    関連キーワード 情報漏えい | サイバー攻撃 | 教育IT | セキュリティ | セキュリティ対策 | 標的型攻撃 英国のマンチェスター大学(The University of Manchester)は2023年6月、ランサムウェア(身代金要求型マルウェア)攻撃を受けたことを発表した。同大学の学生と職員が攻撃集団から受信したメールは、「身代金を支払わなければ、個人情報を直ちに売却もしくは流出させる」と脅迫するものだった。メール文面の詳細とは。 メールに書かれていた脅迫内容 併せて読みたいお薦め記事 教育機関とランサムウェア攻撃 “学校を襲うランサムウェア犯罪者集団”の非道な手口 教育機関ができることは? ランサムウェア被害校が「生徒のデータが漏れても身代金を払わなかった」理由 攻撃集団はメールにおいて、2023年6月6日(現地時間)にマンチェスター大学のシステムへの侵入に成功したことを伝え

    「大学はあなたを見捨てた」――名門大学生に届いた“怪しいメール”の正体
  • 小学校が困る「プログラミング教材」3大課題とは? 学芸大付属小金井小に聞く

    関連キーワード 教育 | 教育IT | 導入効果 | プログラミング 東京学芸大学付属小金井小学校の小池翔太教諭 2020年度施行の学習指導要領は、小学校におけるプログラミング教育を必須化した。各校は「算数」「理科」「総合」など、各教科の中でプログラミング教育の要素を取り入れた授業を実施。児童のプログラミング的思考の育成に加えて、各教科の理解促進を図る。 ITベンダー各社が販売するプログラミング教材をうまく利用することで、教員はプログラミング教育を効率的かつ効果的に進めやすくなる。ただしプログラミング教材の活用に当たっては、幾つかの課題がある。具体的にはどのような課題があるのか。どのような視点でプログラミング教材を選べばよいのか。東京学芸大学付属小金井小学校(以下、小金井小学校)の教諭を務め、教育現場におけるIT活用やプログラミング教育を精力的に推進する小池翔太氏に聞いた。 教育現場が使う

    小学校が困る「プログラミング教材」3大課題とは? 学芸大付属小金井小に聞く
  • 常温常圧超伝導体「LK-99」再現実験について東南大学のチームがマイナス163度で「抵抗ゼロ」を観測したと発表

    2023年7月に韓国の研究チームが常温かつ常圧で超伝導状態になる物質「LK-99」に関する未査読論文を公開しました。LK-99が当に超伝導体なのかを明らかにするべく世界中の研究機関が再現実験に取り組んでおり、2023年8月3日には中国・東南大学の研究チームが「LK-99が110K(約マイナス163度)で抵抗ゼロになることを確認した」とする未査読論文を発表しました。 Observation of zero resistance above 100° K in Pb10−xCux(PO4)6O https://doi.org/10.48550/arXiv.2308.01192 LK99,110K零电阻观测成功_哔哩哔哩_bilibili https://www.bilibili.com/video/BV1pM4y1p7u5/ 電気の抵抗がゼロになる超伝導体はリニアモーターカーや量子コンピュー

    常温常圧超伝導体「LK-99」再現実験について東南大学のチームがマイナス163度で「抵抗ゼロ」を観測したと発表
    Itisango
    Itisango 2023/08/10
  • PHP: グローバル空間 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: グローバル空間 - Manual
    Itisango
    Itisango 2023/08/10
    名前空間の定義がない場合、すべてのクラスや関数の定義はグローバル空間に配置されます。 これは、名前空間に対応する前の PHP がサポートしていた空間です。
  • PHP: エイリアス/インポート - Manual

    名前空間の使用法: エイリアス/インポート (PHP 5 >= 5.3.0, PHP 7, PHP 8) 外部の完全修飾名をエイリアスで参照したりインポートしたりする機能は、 名前空間において非常に重要なものです。 これは、Unix 系のファイルシステムでファイルやディレクトリへのシンボリックリンクを作成することに似ています。 PHP は定数、関数、クラス、インターフェイス、トレイト、列挙型(Enum)、名前空間のエイリアスやインポートをサポートしています。 エイリアス作成には use 演算子を使用します。 ここに、5 種類すべてのインポート方法の例を示します。 <?php namespace foo; use My\Full\Classname as Another; // これは use My\Full\NSname as NSname と同じです use My\Full\NSname

    Itisango
    Itisango 2023/08/10
    定数、関数、クラス、インターフェイス、トレイト、列挙型(Enum)、名前空間のエイリアスやインポートをサポートしています。エイリアス作成には use 演算子を使用します。 5 種類すべてのインポート方法の例を示し
  • PHP: namespace キーワードおよび __NAMESPACE__ - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    Itisango
    Itisango 2023/08/10
    現在の名前空間内の要素へのアクセスを抽象化するための方法が 2 通りあります。 マジック定数 __NAMESPACE__ および namespace キーワードがそれです。 __NAMESPACE__ の値は文字列で、現在の名前空間の名前が格納されます。
  • PHP: 名前空間と動的言語機能 - Manual

    名前空間と動的言語機能 (PHP 5 >= 5.3.0, PHP 7, PHP 8) PHP における名前空間の実装は、PHP 自身が動的プログラミング言語であるという性質に影響を受けています。 したがって、次の例のようなコードを名前空間を使って書き直すには <?php class classname { function __construct() { echo __METHOD__,"\n"; } } function funcname() { echo __FUNCTION__,"\n"; } const constname = "global"; $a = 'classname'; $obj = new $a; // classname::__construct と表示します $b = 'funcname'; $b(); // funcname と表示します echo consta

    PHP: 名前空間と動的言語機能 - Manual
    Itisango
    Itisango 2023/08/10
    PHP における名前空間の実装は、PHP 自身が動的プログラミング言語であるという性質に影響を受けています。
  • PHP: 基本編 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    Itisango
    Itisango 2023/08/10
    クラス名を参照するには3 つの方法があります。
  • PHP: 同一ファイル内での複数の名前空間の定義 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    Itisango
    Itisango 2023/08/10
    複数の名前空間をひとつのファイルに記述するようなコーディングはできるだけ避けるべきです。 主な使い道としては、複数の PHP スクリプトをひとつのファイルにまとめるときくらいでしょう。
  • PHP: サブ名前空間 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    Itisango
    Itisango 2023/08/10
    <?php namespace MyProject\Sub\Level; const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } ?> 上の例は、定数 MyProject\Sub\Level\CONNECT_OK とクラス MyProject\Sub\Level\Connection、 そして関数 MyProject\Sub\Level\connect を作成します。
  • PHP: 名前空間 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    Itisango
    Itisango 2023/08/10
    実際に名前空間の影響を受けるのはクラス (抽象クラスやトレイトを含む) とインターフェイス、関数、そして定数だけ。名前空間を宣言するには namespace を使用。名前空間を含むファイルでは、先頭で名前空間を宣言
  • PHP: 概要 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: 概要 - Manual
    Itisango
    Itisango 2023/08/10
    名前空間の名前は、大文字小文字を区別しません。 注意: 名前空間の名前として PHP や これらで始まる名前 (PHP\Classes など) は 言語の内部で使うために予約されており、ユーザーのコードで使うべきではありません。
  • PHP: 共変性と反変性 - Manual

    共変性と反変性 PHP 7.2.0 で、子クラスのメソッドの引数の型の制限を除く形で、反変性が一部サポートされました。 PHP 7.4.0 以降で、共変性と反変性が完全にサポートされるようになりました。 共変性とは、子クラスのメソッドが、親クラスの戻り値よりも、より特定の、狭い型を返すことを許すことです。 一方で、反変性とは、親クラスのものよりも、より抽象的な、広い型を引数に指定することを許すものです。 型宣言は以下の場合に、より特定の、狭い型であると見なされます: union 型 から、特定の型が削除されている場合 特定の型が 交差型 に追加されている場合 クラスの型が、子クラスの型に変更されている場合 iterable が 配列 または Traversable に変更されている場合 上記と反対のことが当てはまる場合は、より抽象的な、広い型であると見なされます。 <?php abstra

    Itisango
    Itisango 2023/08/10
    7.4.0 以降で、共変性と反変性がサポートされる。共変性とは、子クラスのメソッドが、親クラスの戻り値よりも、狭い型を返すことを許す。反変性とは、親クラスのものよりも、広い型を引数に指定することを許す。
  • PHP: オブジェクトのシリアライズ - Manual

    オブジェクトのシリアライズ - セッション内でのオブジェクト serialize() は、 PHP で保存できるあらゆる値をバイトストリームで表した文字列を返します。 unserialize() を使うと、 この文字列から元の変数の値を取り出すことができます。 オブジェクトをシリアライズすると、オブジェクト内の変数もすべて保存されます。 オブジェクト内のメソッドは保存されません。 クラス名のみが保存されます。 オブジェクトを unserialize() するには、 そのオブジェクトのクラスが定義されている必要があります。 A クラスのオブジェクトをシリアライズしたのなら、 その文字列にはクラス A とその中のすべての変数の値が含まれています。 別のファイルでそれを復元してクラス A のオブジェクトを取り出すには、 まずそのファイル内にクラス A の定義が存在しなければなりません。 これを実

    PHP: オブジェクトのシリアライズ - Manual
    Itisango
    Itisango 2023/08/10
    アプリケーション内でオブジェクトをシリアライズして再利用する場合のお勧めは、 そのクラスの定義をアプリケーション全体で include することです。 クラスの定義が存在しなければオブジェクトの復元に失敗してし
  • PHP: オブジェクトと参照 - Manual

    Notes on reference: A reference is not a pointer. However, an object handle IS a pointer. Example: <?php class Foo { private static $used; private $id; public function __construct() { $id = $used++; } public function __clone() { $id = $used++; } } $a = new Foo; // $a is a pointer pointing to Foo object 0 $b = $a; // $b is a pointer pointing to Foo object 0, however, $b is a copy of $a $c = &$a; //

    PHP: オブジェクトと参照 - Manual
    Itisango
    Itisango 2023/08/10
    PHP でのオブジェクト指向プログラミングのポイントとしてよく言われるのは 「オブジェクトはデフォルトでは参照渡しとなります」ということです。 しかし、正確には少し異なります。
  • PHP: 遅延静的束縛 (Late Static Bindings) - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: 遅延静的束縛 (Late Static Bindings) - Manual
    Itisango
    Itisango 2023/08/10
    遅延静的束縛と呼ばれる機能が搭載されています。 静的継承のコンテキストで呼び出し元のクラスを参照できるようになります。より正確に言うと、遅延静的束縛は直近の "非転送コール" のクラス名を保存します
  • PHP: オブジェクトの比較 - Manual

    オブジェクトの比較 比較演算子(==)を使用する際、 オブジェクト変数は、単純に比較されます。つまり、 二つのオブジェクトのインスタンスは、 同じ属性と値 (値の比較は == によるもの) を有し、同じクラスのインスタンスである場合に、 等しいとされます。 一致演算子(===)を使用する場合、 オブジェクト変数は、同じクラスの同じインスタンスを参照する場合のみ、 等しいとされます。 これらのルールを明確に示す例を以下に示します。 <?php function bool2str($bool) { if ($bool === false) { return 'FALSE'; } else { return 'TRUE'; } } function compareObjects(&$o1, &$o2) { echo 'o1 == o2 : ' . bool2str($o1 == $o2) . "

    Itisango
    Itisango 2023/08/10
    比較演算子(==)を使用する際、 オブジェクト変数は、単純に比較されます。 二つのオブジェクトのインスタンスは、 同じ属性と値 (値の比較は == によるもの) を有し、同じクラスのインスタンスである場合に、 等しい
  • PHP: オブジェクトのクローン作成 - Manual

    オブジェクトのクローン作成 オブジェクトのコピーを作成する際、そのプロパティも全て二重化することが、 常に望ましい動作であるわけではありません。 コピーコンストラクタが必要となる例として、 GTKウインドウを表すオブジェクトを有しており、 そのオブジェクトがGTKウインドウのリソースを保持している際、 コピーを作成する時に、同じプロパティを有するウインドウを作成し、 その新しいオブジェクトがその新しいウインドウのリソースを保持する ようにしたい場合が考えられます。 他の例としては、 オブジェクトがそのオブジェクトが使用する他のオブジェクトへのリファレンスを 保持しており、親オブジェクトをコピーする際に、そのコピーが独立したオブジェクトの コピーを有するように、そのオブジェクトのインスタンスを新たに作成したい場合が 考えられます。 オブジェクトのコピーは、clone キーワード (これは、そ

    Itisango
    Itisango 2023/08/10
    オブジェクトのコピーは、clone キーワード (これは、そのオブジェクトの __clone() メソッドがある場合にこれをコールします)により作成されます。 $copy_of_object = clone $object;
  • PHP: finalキーワード - Manual

    finalキーワード キーワード final を前に付けて定義されたメソッドや定数は、子クラスから上書きできません。 クラス自体がfinalと定義された場合には、このクラスを拡張することはできません。 <?php class BaseClass { public function test() { echo "BaseClass::test() called\n"; } final public function moreTesting() { echo "BaseClass::moreTesting() called\n"; } } class ChildClass extends BaseClass { public function moreTesting() { echo "ChildClass::moreTesting() called\n"; } } // Results in

    PHP: finalキーワード - Manual
    Itisango
    Itisango 2023/08/10
    プロパティを final として宣言することはできません。 final として宣言できるのはクラスとメソッド、 および定数(PHP 8.1.0以降)だけです。 PHP 8.0.0 以降は、private メソッドを final として宣言できるのはコンストラクタだけ
  • PHP: マジックメソッド - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: マジックメソッド - Manual
    Itisango
    Itisango 2023/08/10
    ある動作がオブジェクトに対して行われた場合に、 PHP のデフォルトの動作を上書きする特別なメソッドです。 警告 __ で始まる全てのメソッドは、 PHP によって予約されています。
  • PHP: オブジェクトの反復処理 - Manual

    By reading the posts below I wondered if it really is impossible to make an ArrayAccess implementation really behave like a true array ( by being multi level ) Seems like it's not impossible. Not very preety but usable <?php class ArrayAccessImpl implements ArrayAccess { private $data = array(); public function offsetUnset($index) {} public function offsetSet($index, $value) { // echo ("SET: ".$in

    Itisango
    Itisango 2023/08/10
    PHP は、たとえば foreach 命令などによる反復処理を可能とするように、 オブジェクトを定義する手段を提供します。 デフォルトで、 全ての アクセス権限がある プロパティは、反復処理に使用することができます。
  • PHP: オーバーロード - Manual

    オーバーロード PHP におけるオーバーロード機能は、 プロパティやメソッドを動的に 作成する ための手法です。 これらの動的エンティティは、マジックメソッドを用いて処理されます。 マジックメソッドは、クラス内でさまざまなアクションに対して用意することができます。 オーバーロードメソッドが起動するのは、 宣言されていないプロパティやメソッドを操作しようとしたときです。 また、現在のスコープからは アクセス不能な プロパティやメソッドを操作しようとしたときにも起動します。 このセクションでは、これらの (宣言されていない、 あるいは現在のスコープからはアクセス不能な) プロパティやメソッドのことを アクセス不能プロパティ および アクセス不能メソッド と表記することにします。 オーバーロードメソッドは、すべて public で定義しなければなりません。 注意: これらのマジックメソッドの引数

    Itisango
    Itisango 2023/08/10
    PHP における オーバーロード の解釈は、他の多くのオブジェクト指向言語とは異なります。 一般的に「オーバーロード」とは、 「名前は同じだけれども引数の数や型が異なるメソッドを複数用意できる」 という機能のこと
  • PHP: トレイト - Manual

    トレイト PHP は、コードを再利用するための「トレイト」という仕組みを実装しています。 トレイトは、PHP のような単一継承言語でコードを再利用するための仕組みのひとつです。 トレイトは、単一継承の制約を減らすために作られたもので、 いくつかのメソッド群を異なるクラス階層にある独立したクラスで再利用できるようにします。 トレイトとクラスを組み合わせた構文は複雑さを軽減させてくれ、 多重継承や Mixin に関連するありがちな問題を回避することもできます。 トレイトはクラスと似ていますが、トレイトは単にいくつかの機能をまとめるためだけのものです。 トレイト自身のインスタンスを作成することはできません。 昔ながらの継承に機能を加えて、振る舞いを水平方向で構成できるようになります。 つまり、継承しなくてもクラスのメンバーに追加できるようになります。 <?php trait ezcReflect

    PHP: トレイト - Manual
    Itisango
    Itisango 2023/08/10
    トレイトは、単一継承の制約を減らすために作られたもので、 いくつかのメソッド群を異なるクラス階層にある独立したクラスで再利用できるようにします。
  • PHP: オブジェクト インターフェイス - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: オブジェクト インターフェイス - Manual
    Itisango
    Itisango 2023/08/10
    インターフェイスは、 マジックメソッド を宣言しても問題ありません。注意:コンストラクタ をインターフェイスで宣言できますが、おすすめできません。 インターフェイスを実装するクラスの柔軟性が大きく損なわれる
  • PHP: static キーワード - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    Itisango
    Itisango 2023/08/10
    このページでは、static キーワードを使って static メソッド や static プロパティを定義する方法を説明します。 static は、 static 変数 や static な無名関数、そして 遅延静的束縛 にも使えます。
  • PHP: スコープ定義演算子 (::) - Manual

    スコープ定義演算子 (::) スコープ定義演算子 (またの名を Paamayim Nekudotayim)、 平たく言うと「ダブルコロン」は、トークンのひとつです。 定数 static プロパティ、 クラスの static メソッド、 や親クラスのそれにアクセスできます。 さらに、static メソッドやプロパティは 遅延静的束縛 (Late Static Bindings) 経由でオーバーライドできます。 これらの要素をクラス定義の外から参照する際には、 クラスの名前を使用してください。 変数を用いてクラスを参照することも可能です。 変数の値に (self や parent、 static といった) キーワードを指定することはできません。 なぜダブルコロンに Paamayim Nekudotayim という名前をつけたのか、 ちょっと奇妙に感じられるかもしれません。 しかし、Zend

    PHP: スコープ定義演算子 (::) - Manual
    Itisango
    Itisango 2023/08/10
    スコープ定義演算子 (またの名を Paamayim Nekudotayim)、 平たく言うと「ダブルコロン」は、トークンのひとつです。 static, 定数 およびオーバーライドされたクラスのプロパティやメソッドにアクセスすることができます。
  • PHP: オブジェクトの継承 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: オブジェクトの継承 - Manual
    Itisango
    Itisango 2023/08/10
    オートローディングが有効になっていない限り、 クラスの定義は実際に使うより前になければなりません。 別のクラスを継承したクラスの場合は、 そのクラスより前に親クラスが宣言されていなければなりません。
  • PHP: アクセス権 - Manual

    アクセス権 プロパティ、メソッドまたは (PHP 7.1.0 以降) 定数のアクセス権 (visibility) は、 キーワード: public, protected または private を指定することにより定義できます。 public 宣言されたクラスのメンバーには、どこからでもアクセス可能です。 protected 宣言されたメンバーには、 そのクラス自身、そのクラスを継承したクラス、および親クラスからのみアクセスできます。 private 宣言されたメンバーには、そのメンバーを定義したクラスからのみアクセスできます。 プロパティのアクセス権 クラスのプロパティは、public, private, または protected として定義することができます。 アクセス権を明示的に指定しない場合、 そのプロパティは public として定義されます。 <?php /** * MyCl

    PHP: アクセス権 - Manual
    Itisango
    Itisango 2023/08/10
    クラスメソッドは、public, private, または protected として定義します。アクセス権を明示せずに宣言したメソッドは、 public となります。
  • PHP: コンストラクタとデストラクタ - Manual

    PHP では、開発者がクラスのコンストラクタメソッドを宣言することが できます。コンストラクタメソッドを有するクラスは、新たにオブジェクトが 生成される度にこのメソッドをコールします。これにより、 そのオブジェクトを使用する前に必要な初期化を行うことができます。 注意: 子クラスがコンストラクタを有している場合、親クラスのコンストラクタが 暗黙の内にコールされることはありません。 親クラスのコンストラクタを実行するには、子クラスのコンストラクタの 中で parent::__construct() をコールすることが 必要です。 子クラスでコンストラクタを定義していない場合は、親クラスのコンストラクタを継承します (ただし、private 宣言されている場合は除く)。 これは、通常のクラスメソッドと同様です。 <?php class BaseClass { function __constr

    PHP: コンストラクタとデストラクタ - Manual
    Itisango
    Itisango 2023/08/10
    <?php class MyDestructableClass { function __construct() { print "In constructor\n"; } function __destruct() { print "Destroying " . __CLASS__ . "\n"; } } $obj = new MyDestructableClass();
  • PHP: クラスのオートローディング - Manual

    クラスのオートローディング オブジェクト指向アプリケーションを作成する開発者の多くは、 クラス定義毎に一つのPHPソースファイルを作成します。 最大の問題は、各スクリプトの先頭に、必要な読み込みを行う長いリストを 記述する必要があることです(各クラスについて一つ)。 spl_autoload_register() 関数を使うと、 任意の数のオートローダーを登録でき、 クラスやインターフェイスが定義されていなくても自動的に読み込めるようになります。 オートローダーを登録すれば、PHPがエラーで止まる前にクラスをロードする最後の チャンスが与えられます。 クラスに類似した言語構造は、同じやり方でオートロードできます。 これには、クラス、インターフェイス、トレイト、列挙型が含まれます。 警告 PHP 8.0.0 より前のバージョンでは、 __autoload() 関数でもクラスやインターフェイス

    PHP: クラスのオートローディング - Manual
    Itisango
    Itisango 2023/08/10
    spl_autoload_register() 関数を使うと、 任意の数のオートローダーを登録でき、 クラスやインターフェイスが定義されていなくても自動的に読み込めるようになります。
  • PHP: クラス定数 - Manual

    クラス定数 値が変更できない 定数 をクラス内に定義することができます。 クラス定数のデフォルトのアクセス範囲は public です。 注意: クラス定数は、子クラスで再定義することもできます。 PHP 8.1.0 以降では、final として定義されたクラス定数は、子クラスで再定義できません。 インターフェイスに定数を持たせることもできます。 インターフェイスについてのドキュメント で例を御覧ください。 変数を用いてクラスを参照することも可能です。 変数の値に (self や parent、 static といった) キーワードを指定することはできません。 クラス定数はクラス単位で割り当てられるものです。インスタンス単位ではないことに注意しましょう。 <?php class MyClass { const CONSTANT = 'constant value'; function sho

    PHP: クラス定数 - Manual
    Itisango
    Itisango 2023/08/10
    クラス定数は、子クラスで再定義することもできます。 PHP 8.1.0 以降では、final として定義されたクラス定数は、子クラスで再定義できません。インターフェイスに 定数 を持たせることもできます。
  • PHP: プロパティ - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: プロパティ - Manual
    Itisango
    Itisango 2023/08/10
    static でないプロパティにアクセスするには -> (オブジェクト演算子) を使って $this->property のようにします 。 staticプロパティへのアクセスには :: (ダブルコロン) を使って self::$property のようにします。
  • PHP: クラスの基礎 - Manual

    class 各クラスの定義は、classキーワードで始まり、クラス名が続きます。 そしてその後に波括弧のペアが続き、 その中にはクラスのプロパティとメソッドの定義を記述します。 クラス名には、PHP の予約語 以外でラベルとして有効なあらゆる名前を使用することができます。 有効なクラス名は、先頭が文字あるいはアンダースコアで始まり、 その後に任意の数の文字/数字/アンダースコアが続くものです。 正規表現で表すと、 ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$ のようになります。 クラスの中には、 定数 や 変数 ("プロパティ" といいます) そして関数 ("メソッド" といいます) を含めることができます。

    Itisango
    Itisango 2023/08/10
    クラスにreadonly を指定することができます。 クラスに対して readonly を指定すると、 宣言されている全ての プロパティに対して readonly を指定した ことになり、 かつ 動的なプロパティ の作成を禁止したことになります
  • https://raw.githubusercontent.com/php/php-src/master/CODING_STANDARDS.md

    Itisango
    Itisango 2023/08/10
    Function names for user-level functions should be enclosed with in the `PHP_FUNCTION()` macro. They should be in lowercase, with words underscore delimited, with care taken to minimize the letter count.
  • PHP: ルール - Manual

    ルール 以下のリストは、PHP プロジェクトで新たな内部識別子を作成する際に どのような基準で名前を決めているのかを おおまかにまとめたものです。完全な規約は、公式の » コーディング規約 を参照ください。 PHP はトップレベルの名前空間を所有していますが、 きちんとしたわかりやすい名前をつけるようにこころがけ、 衝突が起こらないようにしています。 関数名では、単語の間にアンダースコアを使用します。クラスの場合は、 キャメルケース (camelCase) 形式や パスカルケース (PascalCase) 形式を使います。 PHP の拡張モジュールのグローバルシンボルには、 その拡張モジュールの名前を先頭につけます (過去には、この原則を守っていない例が大量にありました)。 たとえば次のようになります。 curl_close() mysql_query() PREG_SPLIT_DELIM

    Itisango
    Itisango 2023/08/10
    関数名では、単語の間にアンダースコアを使用します。クラスの場合は、 キャメルケース (camelCase) 形式や パスカルケース (PascalCase) 形式を使います。
  • PHP: ユーザーレベルでの命名の手引き - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    Itisango
    Itisango 2023/08/10
    あなたが書く PHP コード中の識別子によりよい名前をつけるための手引きです。 グローバル名前空間のシンボルを作成するコードでシンボルの名前を決める際には、 以下のガイドラインを考慮することが重要です
  • PHP: はじめに - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: はじめに - Manual
    Itisango
    Itisango 2023/08/10
    機能には アクセス権、 abstract クラスやメソッド、 final クラスやメソッド、 新たな マジックメソッド、 インターフェイス、 オブジェクトのクローン作成 などがあります。
  • PHP: 第一級callableを生成する記法 - Manual

    第一級callableを生成する記法 第一級callableを生成する記法 (First class callable syntax) とは、PHP 8.1.0 で追加された、 callable から 無名関数 を生成する記法です。 この記法は、 文字列や配列を使って callable を生成するやり方を置き換えるものです。 この記法の利点は、callable の静的解析を行いやすくなることに加え、 そのスコープが、callable を生成した時点のスコープになることです。 CallableExpr(...) という記法で、 callable から Closure を生成します。 CallableExpr には、 PHP の文法上直接コールできるあらゆる式が使えます: <?php class Foo { public function method() {} public static f

    Itisango
    Itisango 2023/08/10
    この記法の利点は、スコープが、callable を生成した時点のスコープになることです。CallableExpr(...) という記法で、 callable から Closure を生成します。 CallableExpr には、 PHP の文法上直接コールできるあらゆる式が使えます
  • PHP: アロー関数 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    Itisango
    Itisango 2023/08/10
    アロー関数は fn (argument_list) => expr という形で記述します。アロー関数は 無名関数 と同じ機能をサポートしていますが、 親のスコープで使える変数が常に自動で使える点だけが異なります
  • PHP: 無名関数 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: 無名関数 - Manual
    Itisango
    Itisango 2023/08/10
    無名関数はクロージャとも呼ばれ、 関数名を指定せずに関数を作成できるようにするものです。 callable パラメータとして使う際に便利です。無名関数の実装には Closure クラスを使っています
  • PHP: Manual

    PHP の振る舞いの変更APCu — APC User CacheComponereエラー処理 — エラー処理およびログ記録FFI — Foreign Function InterfaceOPcache出力制御 — 出力バッファリング制御PHP Options/Info — PHP オプションと情報phpdbg — 対話的な PHP デバッガrunkit7uopz — Zend に対するユーザー操作WinCache — PHP 用の Windows キャッシュXhprof — 階層型プロファイラYac音声フォーマットの操作OpenAL — OpenAL 音声バインディング認証サービスRadiusコマンドライン関連Readline — GNU Readline圧縮およびアーカイブBzip2LZFPharRar — Rar アーカイブZipZlib — Zlib 圧縮暗号Hash — HASH

    PHP: Manual
    Itisango
    Itisango 2023/08/10
    PHP の振る舞いの変更 APCu — APC User Cache Componere エラー処理 — エラー処理およびログ記録 FFI — Foreign Function Interface OPcache 出力制御 — 出力バッファリング制御 PHP Options/Info — PHP オプションと情報 phpdbg — 対話的な PHP デバ
  • PHP: function_exists - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: function_exists - Manual
  • PHP: 内部(ビルトイン)関数 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: 内部(ビルトイン)関数 - Manual
    Itisango
    Itisango 2023/08/10
    多くの関数と言語構造を持っています。他にも コンパイル済みの特定のPHP拡張モジュールを必要とする関数があります。 もしコンパイルされていなければ"undefined function(未定義の関数)" として致命的エラーを発する
  • PHP: 可変関数 - Manual

    可変関数 PHP は可変関数(variable functions)の概念をサポートします。 これにより、変数名の後に括弧が付いている場合、その値が何であろうと PHPは、同名の関数を探し実行を試みます。 この機能は、コールバック、関数テーブル等を実装するために使用可能です。 可変関数は、echo, print, isset(), empty(), include, require のような言語構造と組み合わせて使用する ことはできません。これらの言語構造を可変変数として使うには 独自のラッパー関数を使う必要があります。 <?php function foo() { echo "In foo()<br />\n"; } function bar($arg = '') { echo "In bar(); argument was '$arg'.<br />\n"; } // これは、echo

    Itisango
    Itisango 2023/08/10
    可変関数(variable functions)の概念をサポートします。 変数名の後に括弧が付いている場合、その値が何であろうと PHPは、同名の関数を探し実行を試みます。 コールバック、関数テーブル等を実装するために使用可能です
  • PHP: 返り値 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: 返り値 - Manual
    Itisango
    Itisango 2023/08/10
    配列やオブジェクトを含むあらゆる型を返すことができます。 これにより、関数の実行を任意の箇所で終了し、その関数を呼び出した 箇所に制御を戻すことが出来ます。注意:return を省略した場合は null を返します。
  • PHP: 関数の引数 - Manual : 可変長引数リスト

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: 関数の引数 - Manual : 可変長引数リスト
    Itisango
    Itisango 2023/08/10
    左から右の順番で行われます(先行評価)。 PHP は、値渡し(デフォルト)、 リファレンス渡し、 デフォルト引数値 をサポートしています。また、 可変長引数リスト や、 名前付き引数 もサポートしています。
  • PHP: ユーザー定義関数 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: ユーザー定義関数 - Manual
    Itisango
    Itisango 2023/08/10
    function foo($arg_1, $arg_2, /* ..., */ $arg_n) { echo "関数の例\n"; return $retval; }
  • PHP: goto - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: goto - Manual
    Itisango
    Itisango 2023/08/10
    対象となるラベルは同じファイル上の同じコンテキストになければなりません。 つまり、関数やメソッドの外に飛び出したり 関数やメソッドの中に突入したりすることはできないということです
  • PHP: include_once - Manual

    include_once (PHP 4, PHP 5, PHP 7, PHP 8) include_once 命令は、スクリプトの実行時に指定 したファイルを読み込み評価します。この動作は、 include 命令と似ていますが、ファイルからのコー ドが既に読み込まれている場合は、再度読み込まれないという重要な違い があります。また、include_once は true を返します。その名が示す通り、ファイルは一度しか読み込まれません。 include_once は、スクリプトの実行時に同じファイ ルが複数回読み込まれ、評価される可能性がある場合に、関数の再定義や 変数値の再代入といった問題を回避するために一回だけ読み込ませるため に使用します。 この関数の動作についての情報は include のドキュメントを参照ください。

    Itisango
    Itisango 2023/08/10
    include_once は、スクリプトの実行時に同じファイ ルが複数回読み込まれ、評価される可能性がある場合に、関数の再定義や 変数値の再代入といった問題を回避するために一回だけ読み込ませるため に使用します。
  • PHP: require_once - Manual

    If your code is running on multiple servers with different environments (locations from where your scripts run) the following idea may be useful to you: a. Do not give absolute path to include files on your server. b. Dynamically calculate the full path (absolute path) Hints: Use a combination of dirname(__FILE__) and subsequent calls to itself until you reach to the home of your '/index.php'. The

    PHP: require_once - Manual
    Itisango
    Itisango 2023/08/10
    require_once 式は require とほぼ同じ意味ですが、 ファイルがすでに読み込まれているかどうかを PHP がチェックするという点が異なります。 すでに読み込まれている場合はそのファイルを読み込みません
  • PHP: include - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: include - Manual
    Itisango
    Itisango 2023/08/10
    指定されたパスから行います。パスを指定しない場合は、 include_path の設定を利用します。 ファイルが include_path に見つからないときは、include は呼び出し元スクリプトのディレクトリと現在の作業ディレクトリも探します
  • PHP: require - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    Itisango
    Itisango 2023/08/10
    include とほぼ同じですが、失敗した場合に E_COMPILE_ERROR レベルの致命的なエラーも発生するという点が異なります。 つまり、スクリプトの処理がそこで止まってしまうということです。一方 include の場合は、警告 (E_WARNING)
  • PHP: return - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: return - Manual
    Itisango
    Itisango 2023/08/10
    グローバルスコープで呼び出されると、現在実行中のスクリプトが終了 します。もしそのスクリプトが include もしくは require されたものである場合、制御は呼び出し元 のファイルに戻ります
  • PHP: declare - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: declare - Manual
    Itisango
    Itisango 2023/08/10
    現在のところ、使用できるディレクティブは ticks ( ticksに関しては以下を参照ください)、 encoding (encoding に関しては以下を参照ください)、 strict_types (型宣言のページの 厳密な型付け も参照ください) です
  • PHP: match - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    Itisango
    Itisango 2023/08/10
    (==)ではなく、 型と値の一致チェック(===) に基づいて行われます。 match 式は PHP 8.0.0 以降で利用可能です。 例1 match 式の構造 <?php $return_value = match (制約式) { 単一の条件式 => 返却式, 条件式1, 条件式2 => 返却式, };
  • AndroidからiPhoneに乗り換え。しんどいと思ったこと9選

    AndroidからiPhoneに乗り換え。しんどいと思ったこと9選2023.08.09 12:001,141,165 Kyle Barr - Gizmodo US [原文] ( satomi ) 数々の冒険をサバイブしたGoogle Pixel 3。ケースつけてもボロっボロだが、右のApple純正クリアケースのほうが間にたまったホコリは目立つ Photo: Kyle Barr / Gizmodo もう2023年なんだし、昔みたいにAndroidとiOSの垣根はないよね!と思った自分が甘かった…。Pixel 3からiPhone 14 Proに先月乗り換えて、それを嫌というほど思い知りました。 GoogleAppleもひいきのユーザーにはよくしてくれるけど、やめた人間には冷たいもんですよ。 かくいう自分はどこにでもいるニューヨーカー。多忙で、週末はだいたい遠出します。そんな僕でも、電話会社に

    AndroidからiPhoneに乗り換え。しんどいと思ったこと9選
  • PHP: switch - Manual

    switch (PHP 4, PHP 5, PHP 7, PHP 8) switch文は、同じ式を用いてIF文を並べたのに似ています。 同じ変数を異なる値と比較し、値に応じて異なったコードを実行したいと 思うことがしばしばあるかと思います。 switch文は、まさにこのためにあるのです。 注意: 他の言語とは違って、 continue命令は switch にも適用され、breakと同じ動作をします。 ループの内部で switch を使用しており、 外側のループの処理を続行させたい場合には、continue 2 を使用してください。 注意: switch/case が行うのは、 緩やかな比較 であることに注意しましょう。 次の二つの例は、同じことを二つの異なった方法で書いたものです。 一つは、if と elseif文を、 もう一つはswitch文を使っています。 どちらも、出力は同じです。

    PHP: switch - Manual
    Itisango
    Itisango 2023/08/10
    case に与える値は、式であっても構いません。 しかし、式はそれ自体が実行され、 その結果が swtich に与えた値と緩やかに比較されます。 これは、switch に与える値の複雑な評価には使えないということです。
  • PHP: continue - Manual

    continue (PHP 4, PHP 5, PHP 7, PHP 8) continue は、ループ構造において現在の繰り返しループ の残りの処理をスキップし、条件式を評価した後に 次の繰り返しの最初から実行を続けるために使用されます、 注意: PHP では、continue の動作に関しては switch 文がループ構造とみなされます。 continue に引数を渡さなかった場合の動きは break と同じですが、間違いの元なので警告が生成されます。 switch がループ内にある場合、 continue 2 とすると、外側のループの次回の処理から続行します。 continueでは、オプションの引数で 処理をスキップするループ構造のレベルの数を指定できます。 デフォルト値は 1 で、 これは現在のループの終了地点までスキップします。 <?php $arr = ['zero', 'on

    PHP: continue - Manual
    Itisango
    Itisango 2023/08/10
    PHP では、continue の動作に関しては switch 文がループ構造とみなされます。 continue に引数を渡さなかった場合の動きは break と同じですが、間違いの元なので警告が生成されます
  • PHP: foreach - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: foreach - Manual
    Itisango
    Itisango 2023/08/10
    二種類の構文があります。 foreach (iterable_expression as $value) 文 foreach (iterable_expression as $key => $value) 文 最初の形式は、iterable_expression で指定した反復可能な値に 関してループ処理を行います。
  • PHP: for - Manual

    for (PHP 4, PHP 5, PHP 7, PHP 8) for ループは、PHPで最も複雑なループです。 for は、Cのforループと同様に動作します。 forループの構文は、次のようになります。 最初の式(式1)は、ループ開始時に無条件に 評価(実行)されます。 各繰り返しの開始時に、式2が評価されます。 その式の値がtrueが場合、ループは継続され、括弧 内の文が実行されます。値がfalseの場合、ループの 実行は終了します。 各繰り返しの後、式3が評価(実行)されます。 各式は空にすることもできますし、複数の式をカンマで区切って指定することもできます。 式2 でカンマ区切りの式を使用すると、 すべての式を評価します。しかし、結果として取得するのは最後の式の結果となります。 式2 を空にすると、無限実行ループになります (PHP は、この状態を C 言語のように暗黙の内に

    PHP: for - Manual
    Itisango
    Itisango 2023/08/10
    PHPは、forループ用に"コロン構文"もサポートします。 for loops. for (式1; 式2; 式3): 文; ... endfor;
  • PHP: while - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: while - Manual
    Itisango
    Itisango 2023/08/10
    if文と同様に、波括弧で複数の文を囲うか、 以下に示す別の構文を用いることにより、同じwhile ループの中に複数の文をグループ化することができます。 while (式): 文 ... endwhile;
  • PHP: 制御構造に関する別の構文 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: 制御構造に関する別の構文 - Manual
  • PHP: elseif/else if - Manual

    elseif/else if (PHP 4, PHP 5, PHP 7, PHP 8) elseifは、その名前から分かるように、if とelseの組み合わせです。elseifは、 elseのように、元のif式の値が falseの場合に別の文を実行するようにif 文を拡張します。 しかし、elseとは異なり、elseif式が trueの場合にのみ代わりの式を実行します。 例えば、次のコードは、aはbより大きい、 aはbに等しい、 aはbより小さいを出力します。 <?php if ($a > $b) { echo "aはbより大きい"; } elseif ($a == $b) { echo "aはbと等しい"; } else { echo "aはbより小さい"; } ?> 複数の elseif を同じ if 文の中で使用することができます。 true と評価された最初の elseif 式を実

  • PHP: 型演算子 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: 型演算子 - Manual
  • PHP: 配列演算子 - Manual

    <?php $a = array("a" => "apple", "b" => "banana"); $b = array("a" => "pear", "b" => "strawberry", "c" => "cherry"); $c = $a + $b; // Union of $a and $b echo "Union of \$a and \$b: \n"; var_dump($c); $c = $b + $a; // Union of $b and $a echo "Union of \$b and \$a: \n"; var_dump($c); $a += $b; // Union of $a += $b is $a and $b echo "Union of \$a += \$b: \n"; var_dump($a); ?> Union of $a and $b: array

    PHP: 配列演算子 - Manual
    Itisango
    Itisango 2023/08/10
    配列等価不等価比較ができる。
  • PHP: 論理演算子 - Manual

    <?php // -------------------- // foo() は決してコールされることはありません。これらの演算子は短絡評価を行うからです。 $a = (false && foo()); $b = (true || foo()); $c = (false and foo()); $d = (true or foo()); // -------------------- // "||" の優先順位は "or" より高くなります // $e に代入されるのは、(false || true) の評価結果です // これは、次の式と同様です: ($e = (false || true)) $e = false || true; // $f に false を代入してから "or" 演算子を評価します // これは、次の式と同様です: (($f = false) or true) $

    Itisango
    Itisango 2023/08/10
    // foo() は決してコールされることはありません。これらの演算子は短絡評価を行うからです。 $a = (false && foo()); $b = (true || foo()); $c = (false and foo()); $d = (true or foo());
  • PHP: 加算子/減算子 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    Itisango
    Itisango 2023/08/10
    加減算子は、数値や文字列にしか影響を及ぼしません。 配列やオブジェクト、boolean、そしてリソースには、何も変更を加えません。 同じく null に減算子を適用しても何も起こりませんが、null に加算子を 適用すると 1
  • PHP: 実行演算子 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: 実行演算子 - Manual
    Itisango
    Itisango 2023/08/10
    バッククォートの 中身をシェルコマンドとして実行しようとします。出力が返されます (すなわち、出力を単にダンプするのではなく、変数に代入することが できます) 。 バッククォート演算子の使用は shell_exec() と等価
  • PHP: エラー制御演算子 - Manual

    エラー制御演算子 PHP はエラー制御演算子(@)をサポートしています。 PHP の式の前に付けた場合、 その式により生成されたエラーメッセージは無視されます。 set_error_handler() で自作のエラーハンドラを設定した場合は エラー制御演算子があってもそのエラーハンドラがコールされます。 警告 PHP 8.0.0 より前のバージョンでは、 エラー制御演算子(@)でエラーが無視されている場合、 カスタムのエラーハンドラでコールされた error_reporting() が常に 0 を返していました。 PHP 8.0.0 以降では、以下の (ビット和の) 値を返すようになっています: E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE

    PHP: エラー制御演算子 - Manual
    Itisango
    Itisango 2023/08/10
    PHP の式の前に付けた場合、 その式により生成されたエラーメッセージは無視されます。set_error_handler() で自作のエラーハンドラを設定した場合は エラー制御演算子があってもそのエラーハンドラがコールされます。
  • PHP: 比較演算子 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: 比較演算子 - Manual
    Itisango
    Itisango 2023/08/10
    ==と===との違いは、Javascriptに似ている。
  • PHP: 算術演算子 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    Itisango
    Itisango 2023/08/10
    剰余演算子は、まず両方のオペランドを整数に直してから処理を行います。 浮動小数点の剰余については fmod() を参照ください。
  • PHP: 式 - Manual

    式 式は、PHP における最も重要なビルディングブロックです。PHPにおいては、ほとんど全てのものは式で記述されます。 最も簡単で最も正確な式の定義は、"値があるもの全て"です。 考えられる簡単な例は、定数と変数です。 $a = 5 と入力すると、 $a に 5 を代入することになります。 5 は、明らかに、 5 という値です。 言葉を変えると 5 は 5 という値を有する式なのです。 (この場合、5 は整数定数です。) この代入の後、$a の値は、5 であることが期待されます。 よって、$b = $a と書いた場合、$b = 5 と書いたのと 同じように動作することが期待されます。 言い換えると $a は 5 という値を持つ式なのです。 全てが正しく動作する場合、何が起こるかをこのことが正確に表現しています。 式をもう少し複雑にしたのが関数です。 例えば、次の関数を考えてみましょう。 あ

    Itisango
    Itisango 2023/08/10
    式は、PHP における最も重要なビルディングブロックです。PHPにおいては、ほとんど全てのものは式で記述されます。 最も簡単で最も正確な式の定義は、"値があるもの全て"です。
  • PHP: 定数 - Manual

    定数 目次構文自動的に定義される定数マジック定数 定数は、値のためのID(名前)です。この名前が示すように、定数の値は スクリプト実行中に変更できません (マジック定数 は例外です。これは実際は定数ではありません)。 定数は大文字小文字を区別します。慣習的に、 定数は常に大文字で表記されます。 注意: PHP 8.0.0 より前のバージョンでは、 define() 関数を使って定義された定数は、 大文字小文字を区別しない場合がありました。 定数の名前は、PHP のラベルと同じ規則に従います。有効な定数の名前は、 文字またはアンダースコアで始まり、任意の数の文字、数字、 アンダースコアが後に続きます。正規表現で示すと次のようになります。 ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$ define() 関数を使うと、 予約語や有効でない名前の定数を定義す

    PHP: 定数 - Manual
    Itisango
    Itisango 2023/08/10
    定数は、値のためのID(名前)です。この名前が示すように、定数の値は スクリプト実行中に変更できません (マジック定数 は例外です。これは実際は定数ではありません)。 定数は大文字小文字を区別します