为什么我的基本php类在实例化时期望参数?
发布时间:2020-12-13 21:36:29 所属栏目:PHP教程 来源:网络整理
导读:MyClass的(123); ????? 这有效,但返回此警告: Warning: Missing argument 1 for myClass::myClass() 我读到了这个,似乎构造函数期望一个值,所以通过添加: function myClass($input='') 警告被删除,但这似乎是不必要的? 有人可以告诉我为什么需要定义一个
MyClass的(123);
?????> 这有效,但返回此警告: Warning: Missing argument 1 for myClass::myClass() 我读到了这个,似乎构造函数期望一个值,所以通过添加: function myClass($input='') 警告被删除,但这似乎是不必要的? 有人可以告诉我为什么需要定义一个值来防止这种警告? 谢谢你的任何指示 解决方法
您正在使用与该类同名的方法(对象中的函数称为方法).这被称为构造函数,它在OOP中具有特殊含义.
永远不会单独调用构造函数,而是在初始化对象时自动调用的方法.方法具有的任何参数,都附加到新的classname语句. $test = new myClass(123); 此外,构造函数必须永远不会返回值.它仅用于在初始化类时执行操作,例如存储参数.任何返回的值都将丢失,因为新myClass的结果始终是初始化对象. 如果您只是想在类中创建一个方法来返回一些文本,那么您需要更改方法的名称.这可行: <?php class myClass { var $input; var $output; function someOtherFunctionName($input) { $output = 'You entered: ' . $input; return $output; } } $test = new myClass; echo $test->someOtherFunctionName(123); ?> 如果构造函数确实是你想要使用的,那么请注意,从PHP 5开始,标准做法是使用__construct()而不是创建一个与类同名的方法: <?php class myClass { var $input; var $output; function __construct($input) { $this->input = $input; // This is a valid thing to do in a constructor } } 有关manual中PHP 5中的构造函数和析构函数的更多信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |