Skip to content

Commit

Permalink
Merge pull request #58 from breakliu/bugfix/compatibility-is_countable
Browse files Browse the repository at this point in the history
compatibility: is_countable (PHP 7 >= 7.3.0, PHP 8)
  • Loading branch information
tiamo committed Jan 29, 2021
2 parents 0925001 + 8c82f29 commit 96f691e
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 2 deletions.
3 changes: 2 additions & 1 deletion src/Sav/Record/Info/LongStringMissingValues.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use SPSS\Buffer;
use SPSS\Sav\Record\Info;
use SPSS\Utils;

class LongStringMissingValues extends Info
{
Expand Down Expand Up @@ -32,7 +33,7 @@ public function write(Buffer $buffer)
foreach ($this->data as $varName => $values) {
$localBuffer->writeInt(mb_strlen($varName));
$localBuffer->writeString($varName);
$localBuffer->write(\chr(\is_countable($values) ? \count($values) : 0), 1);
$localBuffer->write(\chr(Utils::is_countable($values) ? \count($values) : 0), 1);
$localBuffer->writeInt(8);
foreach ($values as $value) {
$localBuffer->writeString($value, 8);
Expand Down
3 changes: 2 additions & 1 deletion src/Sav/Record/Info/LongStringValueLabels.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use SPSS\Buffer;
use SPSS\Sav\Record\Info;
use SPSS\Utils;

class LongStringValueLabels extends Info
{
Expand Down Expand Up @@ -47,7 +48,7 @@ public function write(Buffer $buffer)
$localBuffer->writeInt(mb_strlen($varName));
$localBuffer->writeString($varName);
$localBuffer->writeInt($width);
$localBuffer->writeInt(\is_countable($data['values']) ? \count($data['values']) : 0);
$localBuffer->writeInt(Utils::is_countable($data['values']) ? \count($data['values']) : 0);
foreach ($data['values'] as $value => $label) {
$localBuffer->writeInt($width);
$localBuffer->writeString($value, $width);
Expand Down
13 changes: 13 additions & 0 deletions src/Utils.php
Original file line number Diff line number Diff line change
Expand Up @@ -257,4 +257,17 @@ public static function segmentAllocBytes($width, $segment)

return 0 === $width ? 8 : self::roundUp(self::segmentAllocWidth($width, $segment), 8);
}

/**
* @param mixed $values
*/
public static function is_countable($values)
{
# is_countable (PHP 7 >= 7.3.0, PHP 8)
if (version_compare(PHP_VERSION, "7.3") < 0) {
return (is_array($values) || is_object($values) || is_iterable($values) || $values instanceof Countable);
} else {
return \is_countable($values);
}
}
}

0 comments on commit 96f691e

Please sign in to comment.