![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.2ベストアンサー
- 回答日時:
どひゃーーーー
Googleで「PHP instanceof」で調べたら1番ですねそのページ・・
どうもすみませんお騒がせしました。
No.1
- 回答日時:
この回答への補足
補足します。
一応Javaでいうところどのようなことがしたいのかを書きます。
-------------------------------------------------------------
import java.util.AbstractList;
import java.util.ArrayList;
import java.util.List;
public class InstanceofTest {
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<String>();
System.out.println("al instanceof ArrayList : " + (al instanceof ArrayList));
System.out.println("al instanceof AbstractList : " + (al instanceof AbstractList));
System.out.println("al instanceof List : " + (al instanceof List));
}
}
------------------------------------------------------------
結果:(つまり継承しているか、実装しているかがtrueとして分かる。)
al instanceof ArrayList : true
al instanceof AbstractList : true
al instanceof List : true
PHPだと、継承元の型での引数としては渡せることは渡せるのですが、
やはり先に型チェックしてから渡したい場面もあるので。
--------------------------------------------------------------
interface Runnable {
}
class Vehicle {
}
class Car extends Vehicle implements Runnable {
}
class VehicleRepairer {
public static function fix(Vehicle $vehicle) {
echo get_class($vehicle);
}
}
// インターフェイスは型として認められない?
// インターフェイスの存在意義は?
//class Fuel {
// public static function supply(Runnable $runnnable) {
// echo get_class($runnable);
// }
//}
$car = new Car();
VehicleRepairer::fix($car);
//Fuel::supply($car);
-----------------------------------------------------------
結果:
Car
意図するところ分かって頂けたでしょうか。
よろしくお願いします。
himajin100000さんありがとうございます。
すみません、ついでにもう1つ・・。
CarがVehicleを継承していること、Runnableを実装していることを調べるにはどうすればいいのでしょうか。
--------------------------------------------------
interface Runnable {
}
class Vehicle {
}
class Car extends Vehicle implements Runnable {
}
$car = new Car();
echo get_class($car);
---------------------------------------------------
結果:Car
(つまりVehicleを継承していることとRunnableを実装していることはわからない)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- C言語・C++・C# leetcode 155 minstack 1 2022/05/07 16:43
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- 英語 私の車は、購入してから7年目になるが、これまでに車検を3回受けた。の英訳 11 2022/06/13 03:39
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- 英語 どうか教えてください。 1 2022/08/28 15:05
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- Visual Basic(VBA) VBAのコードで Dim Obj As AccessObject でコンパイルエラーがでます。 「ユ 2 2022/07/01 06:57
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「クラス関数」「メンバ関数」...
-
ラッパークラスって何ですか?
-
ユーザ定義関数にデフォルト引...
-
Objectの型チェック
-
透過PNGが透過されない!!
-
CFileDialogの最初のディレクト...
-
【file_exists】ファイルが存在...
-
フォントの色を変えるには?
-
VB6にてメールを送信する方法
-
C# Excelファイルへの画像挿入。
-
フォームで戻った際に入力済み...
-
.htaccessにphp_valueが使用できな
-
別ファイルの変数を呼び出した...
-
3つ以上の論理積は利用可能なの...
-
onedrive にexcelファイルをア...
-
PHPのif文でその処理を途中で抜...
-
$_SESSION 有効期限をブラウザ...
-
リクエストメソッド
-
pg_exec()、pg_result()は、使...
-
VBSの「MsgBox」について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「クラス関数」「メンバ関数」...
-
phpのクラスにて別ファイルの変...
-
ラッパークラスって何ですか?
-
class定義のphpをファイル分割...
-
phpのクラスメソッドの定義が長...
-
'_'(アンダースコア)の使い方...
-
クラス
-
配列とオブジェクトの違い
-
PHPのクラス名の付け方
-
codeigniter cartのoptions
-
メンバインスタンスへのアクセ...
-
PHPでオブジェクト指向開発して...
-
ユーザー定義関数とクラスの違...
-
ソースファイルの分け方について
-
データベースで値をインクリメ...
-
require_onceについて
-
PHPでサブクラスからスーパクラ...
-
phpで使用不可のクラス名
-
php、可変プロパティ名について
-
比較演算子===と!==について
おすすめ情報