相关疑难解决方法(0)

PHP - 获取特定命名空间内的所有类名

我想在命名空间中获取所有类.我有这样的事情:

#File: MyClass1.php
namespace MyNamespace;

class MyClass1() { ... }

#File: MyClass2.php
namespace MyNamespace;

class MyClass2() { ... }

#Any number of files and classes with MyNamespace may be specified.

#File: ClassHandler.php
namespace SomethingElse;
use MyNamespace as Classes;

class ClassHandler {
    public function getAllClasses() {
        // Here I want every classes declared inside MyNamespace.
    }
}
Run Code Online (Sandbox Code Playgroud)

我想get_declared_classes()里面getAllClasses(),但MyClass1MyClass2没有在列表中.

我怎么能这样做?

php namespaces

50
推荐指数
7
解决办法
4万
查看次数

从文件中获取类名

我有一个只包含一个类的php文件.通过了解文件名,我怎么知道哪个类?我知道我可以用regexp匹配做一些事情,但是有标准的php方式吗?(该文件已包含在试图找出类名的页面中).

php reflection

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

有一种方法可以使用CLASS_EXISTS和__autoload而无需CRASH脚本吗?

例:

ClassName.php

<?php echo "This will crash all"; ?>
Run Code Online (Sandbox Code Playgroud)

在另一个档案中......

foreach ($FILENAMES_WITHOUT_DOT_PHP as $name => $value) {
    if (class_exists( $value )) {
      echo "ClassName exists...";
    }
    else {
      echo "ClassName doesn't exists....";
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码的输出是: 这会崩溃所有

而不是这样: ClassName不存在....

自动加载功能:

function __autoload( $var_class )
{
     require_once( "$var_class.php") ;
}
Run Code Online (Sandbox Code Playgroud)

php exec autoload

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

获取PHP中的所有扩展类

说我得到了一个类:

<?
class ObjectModel {
}
Run Code Online (Sandbox Code Playgroud)

我得到了一些其他课程:

<?
class SomeNewClass extends ObjectModel {
}

class SomeOtherNewClass extends ObjectModel {
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让Object(SomeNewClass和SomeOtherNewClass)基于ObjectModel类?

php children class

7
推荐指数
1
解决办法
4939
查看次数

PHP如果没有索引,如何访问多维数组的所有元素?

我在这里使用了代码的修改版本确定在PHP类文件中定义了哪些类,以从特定的文件列表创建类和函数的多维数组.我最终得到的是这个(我知道这些名字搞砸了,但是我已经搞砸了,并且必须返回并更改3个不同文件中的类名和函数名,所以我们假设这些是合法的类名和函数名),

Array
(
    [0] => Array
        (
            [namethis_whatever_I_want] => Array
                (
                    [0] => another_function
                    [1] => whatever_function
                )

        )

    [1] => Array
        (
            [tc_class_simplevar] => Array
                (
                    [0] => set_var_test
                    [1] => get_var_test
                )

        )

    [2] => Array
        (
            [another_freekin_class] => Array
                (
                    [0] => some_function
                    [1] => another_crazy_function
                )

        )

)
Run Code Online (Sandbox Code Playgroud)

所以现在我需要能够访问每个类下的类名和函数名,而不知道它们中的任何索引是什么.我已经尝试过循环,foreach,并使用像$ i和$ ii这样的计数器来访问它们的数字索引,但我尝试的任何东西都会打印出除垃圾或错误之外的任何内容.

我在想类似嵌入式foreach语句的东西

$i = 0; 
foreach($array as $class){
  echo $class[$i];
  $ii = 0; 
  foreach($class as $val){
  echo $val[$ii];
  $ii++;
  }
$i++;
}
Run Code Online (Sandbox Code Playgroud)

但没有运气.

还试图访问$ …

php foreach multidimensional-array

4
推荐指数
1
解决办法
5496
查看次数

列出脚本文件中的所有类和方法

我想在选择特定的脚本文件后将所有类及其方法名称以及方法类型(公共、私有、受保护)输出到数组。

这将用于创建权限系统,管理员可以在其中指定特定用户组可以访问哪些类。

例如,在脚本文件 test.php 中,它具有以下内容:

class test{

public function dostuff(){

}

private function hide(){

}
}
Run Code Online (Sandbox Code Playgroud)

它应该给我一个像这样的列表:类:测试方法:dostuff(公共)隐藏(私有)

php

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