为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕桂英546537 2023-12-15 16:23:26
我正在阅读https://www.amazon.com/PHP-MySQL-Web-Development-4th/dp/0672329166 。在 OOP 章节中,我实现了 page 类(下面的代码),然后在另一个脚本中尝试通过 Reflection("Page") 创建一个实例,依次尝试echo 那个类(通过隐式方法__toString(),就像书中一样:类本身并不重要,但从 Reflection 类推断它的尝试是:foo.php:<?phprequire_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
查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

这本书和例子已经很过时了,2020年不建议这样开发。代码充满了XSS安全问题和糟糕的代码风格。无论如何,你可以在这里尝试这个来反映课程:


<?php


// ...


$reflector = new ReflectionClass('Page');


$properties = $reflector->getProperties();


foreach($properties as $property)

{

    echo $property->getName() . "\n";

}


查看完整回答
反对 回复 2023-12-15
  • 1 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信