Это было на мой взгляд, в течение нескольких дней, я иногда ловлю себя на необходимости использовать Манипуляции метод, который доступен для PHP: Type Juggling ManualCasttype эффективность
и возглавляемую в предмет эффективности/Correct методы .. для того, чтобы продемонстрировать подобный сценарий, который на мой взгляд, будет:
/*
The benchmark test:
Expected Output: string
Actual Output: string
*/
$Percentile = "20%";
echo gettype($Percentile);
?>
<br><br>
Force Casting to an Integer:
<br><br>
<?php
/*
Remove the %age from the string before force re-cast
Expected Output: integer
Actual Output: integer
Test Passed
*/
unset($Percentile); // Just to reduce any cached validations
$Percentile = "20%";
$Percentile = (int)$Percentile;
echo $Percentile."\r\n";
echo gettype($Percentile);
?>
<br><br>
Str Replace to remove the '%' and cast to integer
<br><br>
<?php
/*
Remove the %age from the string before force re-cast
Expected Output: integer
Actual Output: integer
Test Passed
*/
unset($Percentile);
$Percentile = "20%";
$Percentile_New = str_replace("%","",$Percentile);
echo $Percentile_New."\r\n"; //
echo gettype((int)$Percentile_New);
?>
После прочтения все тесты проходят с ожидаемыми результатами, но пытается заставить;
$Percentile = 20%;
который возвращает ошибку:
Parse error: syntax error, unexpected ';'
Так eitherway, создавая проценты будут создаваться с использованием представления строки произнесения, но это не главная цель вопрос ..
Вопрос в том, какой способ более эффективен?
Метод 1:
силы приведение типа в целое с не вынимая% возраста
Способ 2:
использование str_replace
затем заставить приведение типа в целое после удаления% возраста
Эффективность - это меньше места для неправильных типов передачи данных (если такая проблема может возникнуть)
'$ Percentile = 0.2' определенно должен быть наиболее эффективным методом присвоения значения. – ComFreek
Вы, кажется, используете странное определение «эффективный». Обычно это относится коад, который работает быстрее или использует меньше памяти. – Barmar
@Barmar True, позволяет заменить эффективность для надежности –