我想使用PHP反射動態加載基於控制器方法中的參數類型的模型類文件。這是一個示例控制器方法。PHP反射 - 獲取方法參數類型爲字符串
<?php
class ExampleController
{
public function PostMaterial(SteelSlugModel $model)
{
//etc...
}
}
這是我到目前爲止。
//Target the first parameter, as an example
$param = new ReflectionParameter(array('ExampleController', 'PostMaterial'), 0);
//Echo the type of the parameter
echo $param->getClass()->name;
這是有效的,輸出將是'SteelSlugModel',如預期的那樣。但是,模型的類文件可能尚未加載,並且使用getClass()要求定義該類 - 我爲什麼要這樣做的一部分是自動加載控制器操作可能需要的任何模型。
有沒有辦法獲得參數類型的名稱,而無需首先加載類文件?
'$ p`是什麼?你的意思是`$ param`? – 2010-12-22 21:33:56
除非Reflection類在其文檔中缺少重要的信息,否則我不認爲如果不加載類就可以獲得暗示類型。 – simshaun 2010-12-22 21:41:06
@simshaun:否。該類需要加載,否則`getClass`將拋出`ReflectionException`。 – netcoder 2010-12-22 21:45:08