猿问

php 中反射类是否有隐式方法 __toString() ?

我正在阅读https://www.amazon.com/PHP-MySQL-Web-Development-4th/dp/0672329166 。在 OOP 章节中,我实现了 page 类(下面的代码),然后在另一个脚本中尝试通过 Reflection("Page") 创建一个实例,依次尝试echo 那个类(通过隐式方法__toString(),就像书中一样:

类本身并不重要,但从 Reflection 类推断它的尝试是:


foo.php:


<?php

require_once('page.php');

$class = new Reflection('Page');

echo '<pre>'.$class.'</pre>';

给出错误:


Recoverable fatal error: Object of class Reflection could not be converted to string in /var/www/html/2/foo.php on line 5

所以错误表明Reflection类没有方法__toString(),但由于它在书中作为示例,我认为它应该有。那么如何回显通过 类推断出 类的变量 $class 呢?PageReflaction


慕桂英546537
浏览 102回答 1
1回答

慕尼黑的夜晚无繁华

这本书和例子已经很过时了,2020年不建议这样开发。代码充满了XSS安全问题和糟糕的代码风格。无论如何,你可以在这里尝试这个来反映课程:<?php// ...$reflector = new ReflectionClass('Page');$properties = $reflector->getProperties();foreach($properties as $property){&nbsp; &nbsp; echo $property->getName() . "\n";}
随时随地看视频慕课网APP
我要回答