相关疑难解决方法(0)

如何在PHP中获取类名?

public class MyClass {

}
Run Code Online (Sandbox Code Playgroud)

在Java中,我们可以使用 String className = MyClass.class.getSimpleName();

如何在PHP中执行此操作?我已经知道get_class(),但它只适用于对象.目前我在Active Record工作.我需要声明MyClass::className.

php

88
推荐指数
8
解决办法
12万
查看次数

在php中获取父扩展类

我有oop php代码:

class a {
    // with properties and functions
}

class b extends a {
    public function test() {
        echo __CLASS__; // this is b
        // parent::__CLASS__ // error
    }
}

$b = new b();
$b->test();
Run Code Online (Sandbox Code Playgroud)

我有一些父类(普通和抽象)和许多子类.子类扩展父类.因此,当我在某个时刻实例化孩子时,我需要找出我叫的父母.

例如,函数b::test()将返回a

我如何(从我的代码中)获得a班级b的课程?

谢谢

php class parent extend

13
推荐指数
5
解决办法
5198
查看次数

:: class和get_class之间的差异

你能解释一下之间的区别 get_class($instance)ClassName::class

<?php
// PHP 5.5
var_dump(get_class(new Datetime())); // string(8) "DateTime" 
var_dump(Datetime::class); // string(8) "Datetime" with lower t
Run Code Online (Sandbox Code Playgroud)

php

9
推荐指数
1
解决办法
1234
查看次数

如何从静态子方法获取类名

<?php
class MyParent {

    public static function tellSomething() {
        return __CLASS__;
    }
}

class MyChild extends MyParent {

}

echo MyChild::tellSomething();
Run Code Online (Sandbox Code Playgroud)

上面的代码回声"MyParent".我怎样才能得到儿童班的名字 - 在这种情况下是"MyChild"?如果它是可能的...

我只需要知道哪个孩子正在调用继承的方法.

php oop inheritance

5
推荐指数
2
解决办法
2246
查看次数

如何在创建子类的对象时从基类获取子类的名称

我希望在基类中获取子类的名称,这样每当创建子类的对象时,我都会在基类中获得子类的名称.像这样的东西:

class Base_class {
    function __construct() {
        // Some code Here to get the name of the child class
    }
}

class Child_class extends Base_Class {}

class Another_child_class extends Base_Class {}

$object = new Child_Class;
$object2 = new Another_child_class;
Run Code Online (Sandbox Code Playgroud)

$object创建我想构造给我从中创建对象的类的名称.

php oop

4
推荐指数
3
解决办法
561
查看次数

PHP const/static变量在父类的静态上下文中不可用

由于某种原因(哪个?),子类中定义的PHP const/static变量在父类的静态上下文中不可用.

为什么?

例1:

class Model{
  function getAll(){
    $query = "SELECT * FROM " . self::DATABASE_TABLE_NAME;
    // ...
  }
}

class Post extends Model{
  const DATABASE_TABLE_NAME = 'post';
}

$p = Post::getAll();
Run Code Online (Sandbox Code Playgroud)

当我跑步时,我得到:

Fatal error: Undefined class constant 'DATABASE_TABLE_NAME' on line 3 
Run Code Online (Sandbox Code Playgroud)

($ query = ...的行)

例2:

class Model{
    function getAll(){
        $query = "SELECT * FROM " . self::$DATABASE_TABLE_NAME;
        // ...
    }
}

class Post extends Model{
    static $DATABASE_TABLE_NAME = 'post';
}

$p = Post::getAll();
Run Code Online (Sandbox Code Playgroud)

然后我得到:

Fatal error: Access to …
Run Code Online (Sandbox Code Playgroud)

php oop inheritance class constants

3
推荐指数
1
解决办法
2723
查看次数

获取类名而不在php中有类的实例

我正在寻找以下php函数:

class foo
{
}

echo get_class_special(foo);  // returns the string 'foo'
Run Code Online (Sandbox Code Playgroud)

php有一个函数来获取类的名称而不创建类的实例吗?

php reflection

3
推荐指数
1
解决办法
2307
查看次数

从静态函数获取子类名称php

在php中我有一个ROOT类,所有其他类都继承该类.

abstract class ROOT{
    public static function getClass(){

    }
}
Run Code Online (Sandbox Code Playgroud)

我希望该函数返回从该类继承的对象的类(名称).因此,如果我创建一个对象Tree(扩展ROOT)并在其上调用getClass,它应该说"Tree"

函数get_class()仅适用于对象,因此不能在静态函数中使用.有没有办法实现这个目标?

php oop

2
推荐指数
2
解决办法
2793
查看次数

标签 统计

php ×8

oop ×4

class ×2

inheritance ×2

constants ×1

extend ×1

parent ×1

reflection ×1