SplHeap::compare

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::compare โ€” ่ฆ็ด ใ‚’ๆฏ”่ผƒใ—ใ€ใƒ’ใƒผใƒ—ๅ†…ใฎ้ฉๅˆ‡ใชไฝ็ฝฎใซ็ฝฎใ

่ชฌๆ˜Ž

protected function SplHeap::compare(mixed $value1, mixed $value2): int

value1 ใจ value2 ใ‚’ๆฏ”่ผƒใ—ใพใ™ใ€‚

่ญฆๅ‘Š

SplHeap::compare() ๅ†…ใงไพ‹ๅค–ใŒใ‚นใƒญใƒผใ•ใ‚Œใ‚‹ใจใ€ใƒ’ใƒผใƒ—ใŒๅฃŠใ‚Œใฆใ—ใพใ„ใƒ–ใƒญใƒƒใ‚ฏใ•ใ‚ŒใŸ็Šถๆ…‹ใซใชใ‚‹ใ“ใจใŒใ‚ใ‚Šใพใ™ใ€‚ SplHeap::recoverFromCorruption() ใ‚’ใ‚ณใƒผใƒซใ™ใ‚Œใฐใƒ–ใƒญใƒƒใ‚ฏ็Šถๆ…‹ใ‚’่งฃ้™คใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚ ใ—ใ‹ใ—ใ€้ฉๅˆ‡ใชๅ ดๆ‰€ใซ้…็ฝฎใ•ใ‚Œใฆใ„ใชใ„่ฆ็ด ใŒๅ‡บใฆใใ‚‹ใ“ใจใ‚‚ใ‚ใ‚Šใ€ ใƒ’ใƒผใƒ—ใฎๆ€ง่ณชใŒๅคฑใ‚ใ‚Œใฆใ—ใพใ„ใพใ™ใ€‚

ใƒ‘ใƒฉใƒกใƒผใ‚ฟ

value1

ๆฏ”่ผƒใ—ใŸใ„ๆœ€ๅˆใฎใƒŽใƒผใƒ‰ใ€‚

value2

ๆฏ”่ผƒใ—ใŸใ„ 2 ็•ช็›ฎใฎใƒŽใƒผใƒ‰ใ€‚

ๆˆปใ‚Šๅ€ค

ๆฏ”่ผƒ็ตๆžœใ‚’่ฟ”ใ—ใพใ™ใ€‚value1 ใŒ value2 ใ‚ˆใ‚Šๅคงใใ„ๅ ดๅˆใฏๆญฃใฎๆ•ดๆ•ฐๅ€คใ€็ญ‰ใ—ใ„ๅ ดๅˆใฏ 0ใ€ ๅฐใ•ใ„ๅ ดๅˆใฏ่ฒ ใฎๆ•ดๆ•ฐๅ€คใจใชใ‚Šใพใ™ใ€‚

ๆณจๆ„:

ๅŒไธ€ใฎๅ€คใ‚’ๆŒใค่ค‡ๆ•ฐใฎ่ฆ็ด ใ‚’ใƒ’ใƒผใƒ—ๅ†…ใซไฟๆŒใ™ใ‚‹ใ“ใจใฏใŠใ™ใ™ใ‚ใ—ใพใ›ใ‚“ใ€‚ ใใ†ใ™ใ‚‹ใจใ€ใƒ’ใƒผใƒ—ๅ†…ใฎ็›ธๅฏพไฝ็ฝฎใŒใฏใฃใใ‚Šใ—ใชใใชใฃใฆใ—ใพใ„ใพใ™ใ€‚

๏ผ‹add a note

User Contributed Notes 1 note

up
0
ohcc at 163 dot com ยถ
2 days ago
This method is abstract, and in PHP 8.0+ its parameters are of type `mixed`, you can not change their types to types other than `mixed` when `extends`ing SplHeap.

The following example emits an error saying "Fatal error: Declaration of WuXianchengHeap::compare(string $one, string $two): int must be compatible with SplHeap::compare(mixed $value1, mixed $value2)".

<?php
    class WuXianchengHeap extends SplHeap{
        public function __construct(Iterator $iterator){
            foreach($iterator as $item){
                $this->insert($item);
            }
        }
        public function compare(string $one, string $two):int{
            return -1 * strNatCaseCmp($one, $two);
        }
    }
?>