Php &引用;致命错误:调用未定义函数";即使函数是明确定义的
这是我第一次真正进入PHP,我很难理解为什么会出现错误消息。我已经定义了一个函数,但有人告诉我我还没有这样做 我尝试过更改函数的名称和函数在类中出现的顺序(我知道这不会有什么不同),但我想不出还有什么其他方法可以让它工作。代码在我看来非常好,错误消息也没有太多可处理的地方Php &引用;致命错误:调用未定义函数";即使函数是明确定义的,php,Php,这是我第一次真正进入PHP,我很难理解为什么会出现错误消息。我已经定义了一个函数,但有人告诉我我还没有这样做 我尝试过更改函数的名称和函数在类中出现的顺序(我知道这不会有什么不同),但我想不出还有什么其他方法可以让它工作。代码在我看来非常好,错误消息也没有太多可处理的地方 <?php class PinNumberGenerator { private $pins; private $disallowedPins = array(0000,1111,2222,3333,4444,555
<?php
class PinNumberGenerator {
private $pins;
private $disallowedPins = array(0000,1111,2222,3333,4444,5555,6666,7777,8888,9999,1234,5678,2468); // Obvious pins
function __construct($amount) {
$pins = $this->createPinsArray($amount);
}
function generatePin() {
return rand(0,9).rand(0,9).rand(0,9).rand(0,9);
}
private function createPinsArray($amount) {
$currentPin;
$pinsArray = array();
while(count($pinsArray) < $amount) {
$currentPin = generatePin();
if (in_array($currentPin, $disallowedPins)) {
continue;
} else {
$pinsArray[] = $currentPin;
}
}
return $pinsArray;
}
public function getPins() {
foreach($pin as $pins) {
echo $pin . "<br>";
}
}
}
$pins = new PinNumberGenerator(10);
$pins->getPins();
?>
generatePin()
是类的实例方法。它必须是带有$this
的引用。更改:
$currentPin = generatePin();
致:
对$pins
的所有引用执行相同的操作
更改:
$pins = $this->createPinsArray($amount);
致:
和变化:
foreach($pin as $pins) {
致:
最后,改变:
if (in_array($currentPin, $disallowedPins)) {
到
所有类成员都需要使用$this
generatePin()引用。
是类的实例方法。它必须是带有$this
的引用。更改:
$currentPin = generatePin();
致:
对$pins
的所有引用执行相同的操作
更改:
$pins = $this->createPinsArray($amount);
致:
和变化:
foreach($pin as $pins) {
致:
最后,改变:
if (in_array($currentPin, $disallowedPins)) {
到
所有类成员都需要使用
$this
引用,类中的所有方法都应该使用$this进行访问
因此,在类PinNumberGenerator中,应该访问generatePin()函数
使用$this
$this->generatePin() 类中的所有方法都应使用$this进行访问 因此,在类PinNumberGenerator中,应该访问generatePin()函数 使用$this
$this->generatePin() 什么函数是未定义的?这将有助于了解。如果PHP告诉您某些内容未定义,您肯定没有定义它。它是generatePin函数,它已定义,但未被正确访问。什么函数未定义?这将有助于了解。如果PHP告诉您某些内容未定义,那么您肯定没有定义它。它是generatePin函数,并且已定义,因此无法正确访问。假设它是该类的一部分。这段代码的编写方式我们不知道。是的,我们知道。只是没有缩进。但是它肯定在
PinNumberGenerator
类中。它在记事本++中缩进,只是不在这里。很抱歉,它似乎粘贴得不好。我现在看到了整个类声明。我想知道他们在我读了问题后是否做了编辑?谢谢你,亚萨,这让我走上了正确的轨道!做出这样的更改会导致出现大约15个其他错误,但这肯定需要更多的工作:假设它是该类的一部分。这段代码的编写方式我们不知道。是的,我们知道。只是没有缩进。但是它肯定在PinNumberGenerator
类中。它在记事本++中缩进,只是不在这里。很抱歉,它似乎粘贴得不好。我现在看到了整个类声明。我想知道他们在我读了问题后是否做了编辑?谢谢你,亚萨,这让我走上了正确的轨道!做出这样的更改会导致出现大约15个其他错误,但这肯定需要更多的处理:D