加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

为什么我的基本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中的构造函数和析构函数的更多信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读