class __constructor 不要 return zerofill 数字
class __constructor don't return zerofill number
我有这个 class :
class codici {
public $i;
public $len;
public $str;
public $type;
function __construct()
{
$this->getPad($this->i);
}
public function getPad($i)
{
return ''.str_pad($i,4,'0',0);
}
}
我是这样使用的:
$cod = new codici();
$cod_cliente = $cod->i = 1; //return 1
$cod_cliente = $cod->getPad(1); //return 0001
如果我直接调用 class,__constructor 调用内部方法 getPad 并且 return 的错误答案为“1”。相反,如果我调用方法 getPad return 正确的值 '0001'.
为什么我不能使用 $cod_cliente=$cod->i=1
?
$cod_cliente = $cod->i = 1;
它将 $cod_cliente
和 $cod->i
的值都设置为 1。因此当您打印 $cod_cliente
时,它将显示 1。
但是在 $cod_cliente = $cod->getPad(1)
的情况下,执行添加填充的代码并且 return 0001
.
如果你想让你的构造函数return你应该给它一个参数。由于您的 getPad($i)
return 需要 echo/print 结果。
<?php
class codici {
public $i;
public $len;
public $str;
public $type;
function __construct($parameter)
{
$this->i = $parameter;
echo $this->getPad($this->i);
}
public function getPad($i)
{
return ''.str_pad($i,4,'0',0);
}
}
这将允许您这样调用您的 class:
$c = new codici(3);
这将回显 0003
。
这是正确的代码:
class codici {
public $i;
public $len;
public $str;
public $type;
function __construct($parameter)
{
$this->i = $this->getPad($parameter);
}
public function getPad($i)
{
return str_pad($i,4,'0',0);
}
}
现在工作:
$c= new codici(1);
echo $c->i;//return 0001
echo $c->getPad(1);//return 0001
非常感谢。
我有这个 class :
class codici {
public $i;
public $len;
public $str;
public $type;
function __construct()
{
$this->getPad($this->i);
}
public function getPad($i)
{
return ''.str_pad($i,4,'0',0);
}
}
我是这样使用的:
$cod = new codici();
$cod_cliente = $cod->i = 1; //return 1
$cod_cliente = $cod->getPad(1); //return 0001
如果我直接调用 class,__constructor 调用内部方法 getPad 并且 return 的错误答案为“1”。相反,如果我调用方法 getPad return 正确的值 '0001'.
为什么我不能使用 $cod_cliente=$cod->i=1
?
$cod_cliente = $cod->i = 1;
它将 $cod_cliente
和 $cod->i
的值都设置为 1。因此当您打印 $cod_cliente
时,它将显示 1。
但是在 $cod_cliente = $cod->getPad(1)
的情况下,执行添加填充的代码并且 return 0001
.
如果你想让你的构造函数return你应该给它一个参数。由于您的 getPad($i)
return 需要 echo/print 结果。
<?php
class codici {
public $i;
public $len;
public $str;
public $type;
function __construct($parameter)
{
$this->i = $parameter;
echo $this->getPad($this->i);
}
public function getPad($i)
{
return ''.str_pad($i,4,'0',0);
}
}
这将允许您这样调用您的 class:
$c = new codici(3);
这将回显 0003
。
这是正确的代码:
class codici {
public $i;
public $len;
public $str;
public $type;
function __construct($parameter)
{
$this->i = $this->getPad($parameter);
}
public function getPad($i)
{
return str_pad($i,4,'0',0);
}
}
现在工作:
$c= new codici(1);
echo $c->i;//return 0001
echo $c->getPad(1);//return 0001
非常感谢。