将$ _GET作为构造函数的参数传递是否可以?
我猜不是,但是想要一些有希望提出以下意见的建设性论点?
提前感谢您的兴趣。
答案 0 :(得分:4)
您的问题可以稍微澄清,但如果您正在讨论对象构造函数__construct()
:
将$_GET
传递给对象构造函数不会有任何损害,但这是不必要的,因为$_GET
超全局已经可用于您创建的任何类。
主观上,我倾向于不经常直接访问课程内的$_GET $_POST $_SESSION
。通常我会传递我真正需要的超大球的数组值。这绝对是个人偏好,因为在类方法中访问它们对我来说总是很奇怪。这样做没有错。
答案 1 :(得分:1)
$ _ GET是一个与其他变量一样的变量,可以这样使用。您可以将它传递给传递另一个变量的任何地方。
由于$ _GET包含用户提供的数据,因此在对数据执行操作之前,应始终清理该数据。在将数据插入数据库或将其作为HTML输出之前先转义数据。
答案 2 :(得分:1)
你可能会争辩说使用OO编程和类的一个要点就是封装。通过传递一个全局参数,你不会破坏这种安排,但你确实稍微妥协了。
从技术上讲,只要在构造函数中指定$ _GET参数的值,就没有问题。如果您实际上正在分配引用,或者在您的方法中调用$ _GET,那么您可能会因为外部更改而损害您的类功能的可能性。
答案 3 :(得分:0)
当然。 $_GET
中的数据与任何其他数据一样。您只需要记住,用户的数据永远不可信任。
如果您的课程正在清理数据以供使用,通常这不是问题。只是要小心谨慎,以避免SQL注入和XSS等事情。