PHP : Function argument must be an Object with dynamic class name

标签 php class function dynamic arguments

所以我是面向对象编程世界的新手,我目前面临这个问题(所有内容都在代码中描述):

<?php
    class MyClass {
        // Nothing important here
    }

    class MyAnotherClass {
        protected $className;

        public function __construct($className){
            $this->className = $className;
        }
        public function problematicFunction({$this->className} $object){
            // So, here I obligatorily want an $object of
            // dynamic type/class "$this->className"
            // but it don't works like this...
        }
    }

    $object = new MyClass;
    $another_object = new MyAnotherClass('MyClass');

    $another_object->problematicFunction($object);
?>

谁能帮我吗?

谢谢,马克西姆(来自法国:对不起我的英语)

最佳答案

你需要的是

public function problematicFunction($object) {
    if ($object instanceof $this->className) {
        // Do your stuff
    } else {
        throw new InvalidArgumentException("YOur error Message");
    }
}

关于PHP : Function argument must be an Object with dynamic class name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15065241/

相关文章:

class - Flutter Dart - 动态获取类的属性

c++ - (2 个问题) 'class' 类型重定义(即使使用#pragma once),以及静态函数内部的静态成员对象初始化?

python - 为什么我需要将对象传递给此类才能使其工作?

c - 在 C 中返回函数数组

javascript - 原型(prototype)对象/方法代码 - 不显示在控制台上

php - 从 WordPress 中的 wp_posts 表检索数据

PHP 正则表达式匹配 Windows 产品 key

带有多个单选按钮的 Php 联系表单

c - 如果在 main 中定义,为什么程序只提供输出(我该如何更改它)?

php - 使用 foreach 插入表