Avoid array_key_exists(), unless we need to check NULL values (#35)
```php <?php $array = array( 'str' => 'foo', 'num' => 12345, 'null' => NULL, ); print intval(isset($array['null'])) . PHP_EOL; print intval(array_key_exists($array['null'])) . PHP_EOL; print intval(isset($array['num'])) . PHP_EOL; print intval(array_key_exists($array['num'])) . PHP_EOL; print intval(isset($array['str'])) . PHP_EOL; print intval(array_key_exists($array['str'])) . PHP_EOL; ``` Only for this special case, you need array_key_exists(), else avoid it as it is painfully slow and hurts your performance. Signed-off-by: Roland Häder <roland@mxchange.org>
This commit is contained in:
parent
fb1d280e82
commit
296cc69f0a
|
@ -178,7 +178,7 @@ class CachedObjectStorageFactory
|
||||||
|
|
||||||
self::$storageMethodParameters[$method] = self::$storageMethodDefaultParameters[$method];
|
self::$storageMethodParameters[$method] = self::$storageMethodDefaultParameters[$method];
|
||||||
foreach ($arguments as $argument => $value) {
|
foreach ($arguments as $argument => $value) {
|
||||||
if (array_key_exists($argument, self::$storageMethodParameters[$method])) {
|
if (isset(self::$storageMethodParameters[$method][$argument])) {
|
||||||
self::$storageMethodParameters[$method][$argument] = $value;
|
self::$storageMethodParameters[$method][$argument] = $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -700,7 +700,7 @@ if ((!function_exists('mb_str_replace')) &&
|
||||||
if ($s == '' && $s !== 0) {
|
if ($s == '' && $s !== 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$r = !is_array($replace) ? $replace : (array_key_exists($key, $replace) ? $replace[$key] : '');
|
$r = !is_array($replace) ? $replace : (isset($replace[$key]) ? $replace[$key] : '');
|
||||||
$pos = mb_strpos($subject, $s, 0, 'UTF-8');
|
$pos = mb_strpos($subject, $s, 0, 'UTF-8');
|
||||||
while ($pos !== false) {
|
while ($pos !== false) {
|
||||||
$subject = mb_substr($subject, 0, $pos, 'UTF-8') . $r . mb_substr($subject, $pos + mb_strlen($s, 'UTF-8'), null, 'UTF-8');
|
$subject = mb_substr($subject, 0, $pos, 'UTF-8') . $r . mb_substr($subject, $pos + mb_strlen($s, 'UTF-8'), null, 'UTF-8');
|
||||||
|
|
|
@ -458,7 +458,7 @@ class MathTrig
|
||||||
$myPoweredFactors[$myCountedFactor] = pow($myCountedFactor, $myCountedPower);
|
$myPoweredFactors[$myCountedFactor] = pow($myCountedFactor, $myCountedPower);
|
||||||
}
|
}
|
||||||
foreach ($myPoweredFactors as $myPoweredValue => $myPoweredFactor) {
|
foreach ($myPoweredFactors as $myPoweredValue => $myPoweredFactor) {
|
||||||
if (array_key_exists($myPoweredValue, $allPoweredFactors)) {
|
if (isset($allPoweredFactors[$myPoweredValue])) {
|
||||||
if ($allPoweredFactors[$myPoweredValue] < $myPoweredFactor) {
|
if ($allPoweredFactors[$myPoweredValue] < $myPoweredFactor) {
|
||||||
$allPoweredFactors[$myPoweredValue] = $myPoweredFactor;
|
$allPoweredFactors[$myPoweredValue] = $myPoweredFactor;
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,7 +105,7 @@ class DataType
|
||||||
{
|
{
|
||||||
$pValue = (string) $pValue;
|
$pValue = (string) $pValue;
|
||||||
|
|
||||||
if (!array_key_exists($pValue, self::$errorCodes)) {
|
if (!isset(self::$errorCodes[$pValue])) {
|
||||||
$pValue = '#NULL!';
|
$pValue = '#NULL!';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,9 +84,12 @@ class DefaultValueBinder implements IValueBinder
|
||||||
}
|
}
|
||||||
|
|
||||||
return DataType::TYPE_NUMERIC;
|
return DataType::TYPE_NUMERIC;
|
||||||
} elseif (is_string($pValue) && array_key_exists($pValue, DataType::getErrorCodes())) {
|
} elseif (is_string($pValue)) {
|
||||||
|
$errorCodes = DataType::getErrorCodes();
|
||||||
|
if (isset($errorCodes[$pValue])) {
|
||||||
return DataType::TYPE_ERROR;
|
return DataType::TYPE_ERROR;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return DataType::TYPE_STRING;
|
return DataType::TYPE_STRING;
|
||||||
}
|
}
|
||||||
|
|
|
@ -123,7 +123,7 @@ class Legend
|
||||||
*/
|
*/
|
||||||
public function setPositionXL($positionXL = self::XL_LEGEND_POSITION_RIGHT)
|
public function setPositionXL($positionXL = self::XL_LEGEND_POSITION_RIGHT)
|
||||||
{
|
{
|
||||||
if (!array_key_exists($positionXL, self::$positionXLref)) {
|
if (!isset(self::$positionXLref[$positionXL])) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -242,7 +242,7 @@ class Spreadsheet
|
||||||
break;
|
break;
|
||||||
case 'target':
|
case 'target':
|
||||||
case 'data':
|
case 'data':
|
||||||
if (is_array($this->ribbonXMLData) && array_key_exists($what, $this->ribbonXMLData)) {
|
if (is_array($this->ribbonXMLData) && isset($this->ribbonXMLData[$what])) {
|
||||||
$returnData = $this->ribbonXMLData[$what];
|
$returnData = $this->ribbonXMLData[$what];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -283,13 +283,13 @@ class Spreadsheet
|
||||||
break;
|
break;
|
||||||
case 'names':
|
case 'names':
|
||||||
case 'data':
|
case 'data':
|
||||||
if (is_array($this->ribbonBinObjects) && array_key_exists($What, $this->ribbonBinObjects)) {
|
if (is_array($this->ribbonBinObjects) && isset($this->ribbonBinObjects[$What])) {
|
||||||
$ReturnData = $this->ribbonBinObjects[$What];
|
$ReturnData = $this->ribbonBinObjects[$What];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'types':
|
case 'types':
|
||||||
if (is_array($this->ribbonBinObjects) &&
|
if (is_array($this->ribbonBinObjects) &&
|
||||||
array_key_exists('data', $this->ribbonBinObjects) && is_array($this->ribbonBinObjects['data'])) {
|
isset($this->ribbonBinObjects['data']) && is_array($this->ribbonBinObjects['data'])) {
|
||||||
$tmpTypes = array_keys($this->ribbonBinObjects['data']);
|
$tmpTypes = array_keys($this->ribbonBinObjects['data']);
|
||||||
$ReturnData = array_unique(array_map([$this, 'getExtensionOnly'], $tmpTypes));
|
$ReturnData = array_unique(array_map([$this, 'getExtensionOnly'], $tmpTypes));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -440,25 +440,25 @@ class Style extends Style\Supervisor implements IComparable
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// not a supervisor, just apply the style array directly on style object
|
// not a supervisor, just apply the style array directly on style object
|
||||||
if (array_key_exists('fill', $pStyles)) {
|
if (isset($pStyles['fill'])) {
|
||||||
$this->getFill()->applyFromArray($pStyles['fill']);
|
$this->getFill()->applyFromArray($pStyles['fill']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('font', $pStyles)) {
|
if (isset($pStyles['font'])) {
|
||||||
$this->getFont()->applyFromArray($pStyles['font']);
|
$this->getFont()->applyFromArray($pStyles['font']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('borders', $pStyles)) {
|
if (isset($pStyles['borders'])) {
|
||||||
$this->getBorders()->applyFromArray($pStyles['borders']);
|
$this->getBorders()->applyFromArray($pStyles['borders']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('alignment', $pStyles)) {
|
if (isset($pStyles['alignment'])) {
|
||||||
$this->getAlignment()->applyFromArray($pStyles['alignment']);
|
$this->getAlignment()->applyFromArray($pStyles['alignment']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('numberformat', $pStyles)) {
|
if (isset($pStyles['numberformat'])) {
|
||||||
$this->getNumberFormat()->applyFromArray($pStyles['numberformat']);
|
$this->getNumberFormat()->applyFromArray($pStyles['numberformat']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('protection', $pStyles)) {
|
if (isset($pStyles['protection'])) {
|
||||||
$this->getProtection()->applyFromArray($pStyles['protection']);
|
$this->getProtection()->applyFromArray($pStyles['protection']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('quotePrefix', $pStyles)) {
|
if (isset($pStyles['quotePrefix'])) {
|
||||||
$this->quotePrefix = $pStyles['quotePrefix'];
|
$this->quotePrefix = $pStyles['quotePrefix'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -221,25 +221,25 @@ class Borders extends Supervisor implements \PhpOffice\PhpSpreadsheet\IComparabl
|
||||||
if ($this->isSupervisor) {
|
if ($this->isSupervisor) {
|
||||||
$this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
|
$this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
|
||||||
} else {
|
} else {
|
||||||
if (array_key_exists('left', $pStyles)) {
|
if (isset($pStyles['left'])) {
|
||||||
$this->getLeft()->applyFromArray($pStyles['left']);
|
$this->getLeft()->applyFromArray($pStyles['left']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('right', $pStyles)) {
|
if (isset($pStyles['right'])) {
|
||||||
$this->getRight()->applyFromArray($pStyles['right']);
|
$this->getRight()->applyFromArray($pStyles['right']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('top', $pStyles)) {
|
if (isset($pStyles['top'])) {
|
||||||
$this->getTop()->applyFromArray($pStyles['top']);
|
$this->getTop()->applyFromArray($pStyles['top']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('bottom', $pStyles)) {
|
if (isset($pStyles['bottom'])) {
|
||||||
$this->getBottom()->applyFromArray($pStyles['bottom']);
|
$this->getBottom()->applyFromArray($pStyles['bottom']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('diagonal', $pStyles)) {
|
if (isset($pStyles['diagonal'])) {
|
||||||
$this->getDiagonal()->applyFromArray($pStyles['diagonal']);
|
$this->getDiagonal()->applyFromArray($pStyles['diagonal']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('diagonaldirection', $pStyles)) {
|
if (isset($pStyles['diagonaldirection'])) {
|
||||||
$this->setDiagonalDirection($pStyles['diagonaldirection']);
|
$this->setDiagonalDirection($pStyles['diagonaldirection']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('allborders', $pStyles)) {
|
if (isset($pStyles['allborders'])) {
|
||||||
$this->getLeft()->applyFromArray($pStyles['allborders']);
|
$this->getLeft()->applyFromArray($pStyles['allborders']);
|
||||||
$this->getRight()->applyFromArray($pStyles['allborders']);
|
$this->getRight()->applyFromArray($pStyles['allborders']);
|
||||||
$this->getTop()->applyFromArray($pStyles['allborders']);
|
$this->getTop()->applyFromArray($pStyles['allborders']);
|
||||||
|
|
|
@ -154,10 +154,10 @@ class Color extends Supervisor implements \PhpOffice\PhpSpreadsheet\IComparable
|
||||||
if ($this->isSupervisor) {
|
if ($this->isSupervisor) {
|
||||||
$this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
|
$this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
|
||||||
} else {
|
} else {
|
||||||
if (array_key_exists('rgb', $pStyles)) {
|
if (isset($pStyles['rgb'])) {
|
||||||
$this->setRGB($pStyles['rgb']);
|
$this->setRGB($pStyles['rgb']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('argb', $pStyles)) {
|
if (isset($pStyles['argb'])) {
|
||||||
$this->setARGB($pStyles['argb']);
|
$this->setARGB($pStyles['argb']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -421,7 +421,7 @@ class Color extends Supervisor implements \PhpOffice\PhpSpreadsheet\IComparable
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (array_key_exists($pIndex, self::$indexedColors)) {
|
if (isset(self::$indexedColors[$pIndex])) {
|
||||||
return new self(self::$indexedColors[$pIndex]);
|
return new self(self::$indexedColors[$pIndex]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -156,19 +156,19 @@ class Fill extends Supervisor implements \PhpOffice\PhpSpreadsheet\IComparable
|
||||||
if ($this->isSupervisor) {
|
if ($this->isSupervisor) {
|
||||||
$this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
|
$this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
|
||||||
} else {
|
} else {
|
||||||
if (array_key_exists('type', $pStyles)) {
|
if (isset($pStyles['type'])) {
|
||||||
$this->setFillType($pStyles['type']);
|
$this->setFillType($pStyles['type']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('rotation', $pStyles)) {
|
if (isset($pStyles['rotation'])) {
|
||||||
$this->setRotation($pStyles['rotation']);
|
$this->setRotation($pStyles['rotation']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('startcolor', $pStyles)) {
|
if (isset($pStyles['startcolor'])) {
|
||||||
$this->getStartColor()->applyFromArray($pStyles['startcolor']);
|
$this->getStartColor()->applyFromArray($pStyles['startcolor']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('endcolor', $pStyles)) {
|
if (isset($pStyles['endcolor'])) {
|
||||||
$this->getEndColor()->applyFromArray($pStyles['endcolor']);
|
$this->getEndColor()->applyFromArray($pStyles['endcolor']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('color', $pStyles)) {
|
if (isset($pStyles['color'])) {
|
||||||
$this->getStartColor()->applyFromArray($pStyles['color']);
|
$this->getStartColor()->applyFromArray($pStyles['color']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -181,31 +181,31 @@ class Font extends Supervisor implements \PhpOffice\PhpSpreadsheet\IComparable
|
||||||
if ($this->isSupervisor) {
|
if ($this->isSupervisor) {
|
||||||
$this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
|
$this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
|
||||||
} else {
|
} else {
|
||||||
if (array_key_exists('name', $pStyles)) {
|
if (isset($pStyles['name'])) {
|
||||||
$this->setName($pStyles['name']);
|
$this->setName($pStyles['name']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('bold', $pStyles)) {
|
if (isset($pStyles['bold'])) {
|
||||||
$this->setBold($pStyles['bold']);
|
$this->setBold($pStyles['bold']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('italic', $pStyles)) {
|
if (isset($pStyles['italic'])) {
|
||||||
$this->setItalic($pStyles['italic']);
|
$this->setItalic($pStyles['italic']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('superScript', $pStyles)) {
|
if (isset($pStyles['superScript'])) {
|
||||||
$this->setSuperScript($pStyles['superScript']);
|
$this->setSuperScript($pStyles['superScript']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('subScript', $pStyles)) {
|
if (isset($pStyles['subScript'])) {
|
||||||
$this->setSubScript($pStyles['subScript']);
|
$this->setSubScript($pStyles['subScript']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('underline', $pStyles)) {
|
if (isset($pStyles['underline'])) {
|
||||||
$this->setUnderline($pStyles['underline']);
|
$this->setUnderline($pStyles['underline']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('strike', $pStyles)) {
|
if (isset($pStyles['strike'])) {
|
||||||
$this->setStrikethrough($pStyles['strike']);
|
$this->setStrikethrough($pStyles['strike']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('color', $pStyles)) {
|
if (isset($pStyles['color'])) {
|
||||||
$this->getColor()->applyFromArray($pStyles['color']);
|
$this->getColor()->applyFromArray($pStyles['color']);
|
||||||
}
|
}
|
||||||
if (array_key_exists('size', $pStyles)) {
|
if (isset($pStyles['size'])) {
|
||||||
$this->setSize($pStyles['size']);
|
$this->setSize($pStyles['size']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -158,7 +158,7 @@ class NumberFormat extends Supervisor implements \PhpOffice\PhpSpreadsheet\IComp
|
||||||
if ($this->isSupervisor) {
|
if ($this->isSupervisor) {
|
||||||
$this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
|
$this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
|
||||||
} else {
|
} else {
|
||||||
if (array_key_exists('code', $pStyles)) {
|
if (isset($pStyles['code'])) {
|
||||||
$this->setFormatCode($pStyles['code']);
|
$this->setFormatCode($pStyles['code']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -842,7 +842,8 @@ class Worksheet extends BIFFwriter
|
||||||
// Numeric value
|
// Numeric value
|
||||||
$num = pack('d', $calculatedValue);
|
$num = pack('d', $calculatedValue);
|
||||||
} elseif (is_string($calculatedValue)) {
|
} elseif (is_string($calculatedValue)) {
|
||||||
if (array_key_exists($calculatedValue, \PhpOffice\PhpSpreadsheet\Cell\DataType::getErrorCodes())) {
|
$errorCodes = \PhpOffice\PhpSpreadsheet\Cell\DataType::getErrorCodes();
|
||||||
|
if (isset($errorCodes[$calculatedValue])) {
|
||||||
// Error value
|
// Error value
|
||||||
$num = pack('CCCvCv', 0x02, 0x00, self::mapErrorCode($calculatedValue), 0x00, 0x00, 0xFFFF);
|
$num = pack('CCCvCv', 0x02, 0x00, self::mapErrorCode($calculatedValue), 0x00, 0x00, 0xFFFF);
|
||||||
} elseif ($calculatedValue === '') {
|
} elseif ($calculatedValue === '') {
|
||||||
|
|
|
@ -620,7 +620,7 @@ class Style extends WriterPart
|
||||||
$aStyles = $this->allStyles($spreadsheet);
|
$aStyles = $this->allStyles($spreadsheet);
|
||||||
/** @var \PhpOffice\PhpSpreadsheet\Style $style */
|
/** @var \PhpOffice\PhpSpreadsheet\Style $style */
|
||||||
foreach ($aStyles as $style) {
|
foreach ($aStyles as $style) {
|
||||||
if (!array_key_exists($style->getFill()->getHashCode(), $aFills)) {
|
if (!isset($aFills[$style->getFill()->getHashCode()])) {
|
||||||
$aFills[$style->getFill()->getHashCode()] = $style->getFill();
|
$aFills[$style->getFill()->getHashCode()] = $style->getFill();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -643,7 +643,7 @@ class Style extends WriterPart
|
||||||
|
|
||||||
/** @var \PhpOffice\PhpSpreadsheet\Style $style */
|
/** @var \PhpOffice\PhpSpreadsheet\Style $style */
|
||||||
foreach ($aStyles as $style) {
|
foreach ($aStyles as $style) {
|
||||||
if (!array_key_exists($style->getFont()->getHashCode(), $aFonts)) {
|
if (!isset($aFonts[$style->getFont()->getHashCode()])) {
|
||||||
$aFonts[$style->getFont()->getHashCode()] = $style->getFont();
|
$aFonts[$style->getFont()->getHashCode()] = $style->getFont();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -666,7 +666,7 @@ class Style extends WriterPart
|
||||||
|
|
||||||
/** @var \PhpOffice\PhpSpreadsheet\Style $style */
|
/** @var \PhpOffice\PhpSpreadsheet\Style $style */
|
||||||
foreach ($aStyles as $style) {
|
foreach ($aStyles as $style) {
|
||||||
if (!array_key_exists($style->getBorders()->getHashCode(), $aBorders)) {
|
if (!isset($aBorders[$style->getBorders()->getHashCode()])) {
|
||||||
$aBorders[$style->getBorders()->getHashCode()] = $style->getBorders();
|
$aBorders[$style->getBorders()->getHashCode()] = $style->getBorders();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -689,7 +689,7 @@ class Style extends WriterPart
|
||||||
|
|
||||||
/** @var \PhpOffice\PhpSpreadsheet\Style $style */
|
/** @var \PhpOffice\PhpSpreadsheet\Style $style */
|
||||||
foreach ($aStyles as $style) {
|
foreach ($aStyles as $style) {
|
||||||
if ($style->getNumberFormat()->getBuiltInFormatCode() === false && !array_key_exists($style->getNumberFormat()->getHashCode(), $aNumFmts)) {
|
if ($style->getNumberFormat()->getBuiltInFormatCode() === false && !isset($aNumFmts[$style->getNumberFormat()->getHashCode()])) {
|
||||||
$aNumFmts[$style->getNumberFormat()->getHashCode()] = $style->getNumberFormat();
|
$aNumFmts[$style->getNumberFormat()->getHashCode()] = $style->getNumberFormat();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue