1.一個由小寫字母組成的字符串可以看成一些同一字母的最大碎片組成的。例如,"aaabbaaac"是由下面碎片組成的:'aaa','bb','c'。牛牛現(xiàn)在給定一個字符串,請你幫助計算這個字符串的所有碎片的平均長度是多少。
輸入描述:
輸入包括一個字符串s,字符串s的長度length(1 ≤ length ≤ 50),s只含小寫字母('a'-'z')
輸出描述:
輸出一個整數(shù),表示所有碎片的平均長度,四舍五入保留兩位小數(shù)。如樣例所示: s = "aaabbaaac"所有碎片的平均長度 = (3 + 2 + 3 + 1) / 4 = 2.25
<?php
function sss($s){
$arr_sum_average = null;
if(strlen($s) >= 1 && strlen($s) <=50 && preg_match('/^[a-z]+$/', $s)){
$arr = array_count_values(str_split($s));
$arr_sum = array_sum($arr);
$arr_count = count($arr);
$arr_sum_average = $arr_sum / $arr_count;
}
$arr_sum_average = sprintf("%.2f", $arr_sum_average);
return $arr_sum_average;
}
echo sss('dasddd');
2.00
2. array_count_values()
對數(shù)組中的所有值進行計數(shù)
3.str_split()
把字符串分割到數(shù)組中。
4.四舍五入3個方法
round(x,prec)
sprintf("%.2f",$num)
number_format($num,2)
5.final
如果父類中的方法被聲明為 final,則子類無法覆蓋該方法。如果一個類被聲明為 final,則不能被繼承。屬性不能被定義為 final,只有類和方法才能被定義為 final。
6.class_exist()
檢查類是否已定義
7.get_class_methods()
返回由類的方法名組成的數(shù)組
8.檢測類中是否存在該方法
<?php
class ceshi{
public function __construct()
{
# code...
}
public function FunctionName($value='')
{
# code...
}
public function FunctionName2($value='')
{
# code...
}
public function FunctionName3($value='')
{
# code...
}
}
$ceshi = new ceshi;
$method = "FunctionName2";
// echo $a = in_array($method, get_class_methods($ceshi));
// echo $a = method_exists($ceshi, $method);
// echo $a = is_callable(array($ceshi, $method));
9.get_class_vars()
返回由類的默認(rèn)公有屬性組成的關(guān)聯(lián)數(shù)組。
10.檢測類是否繼承
<?php
class ceshi2{
}
class ceshi extends ceshi2{
public $a;
private $b;
public function __construct()
{
# code...
}
public function FunctionName($value='')
{
# code...
}
public function FunctionName2($value='')
{
# code...
}
public function FunctionName3($value='')
{
# code...
}
}
// print_r(get_parent_class('ceshi'));
$ceshi = new ceshi;
echo is_subclass_of($ceshi, 'ceshi2');
// echo is_subclass_of('ceshi', 'ceshi2');
11.檢車接口是否存在
<?php
class ceshi3{
}
class ceshi2 implements iTemplate{
public function setVariable($name, $var){
//
}
}
class ceshi extends ceshi2{
public $a;
private $b;
public function __construct()
{
# code...
}
public function FunctionName($value='')
{
# code...
}
public function FunctionName2($value='')
{
# code...
}
public function FunctionName3($value='')
{
# code...
}
}
interface iTemplate
{
public function setVariable($name, $var);
}
$ceshi = new ceshi;
$ceshi3 = new ceshi3;
// 1
// echo ($ceshi3 instanceof iTemplate);
// 2
$implements_arr = class_implements($ceshi);
echo in_array('iTemplate', $implements_arr);
12.call_user_func()
<?php
function ceshi4($a=""){
echo $a;
}
class ceshi3{
}
class ceshi2 implements iTemplate{
public function __construct()
{
# code...
}
public function setVariable($name, $var){
//
}
}
class ceshi extends ceshi2{
public $a;
private $b;
public function __construct()
{
# code...
}
public function FunctionName($value='')
{
echo $value;
}
public function FunctionName2($value='')
{
# code...
}
public function FunctionName3($value='')
{
# code...
}
}
interface iTemplate
{
public function setVariable($name, $var);
}
$ceshi = new ceshi;
$ceshi3 = new ceshi3;
echo function_exists('ceshi4');
if(method_exists($ceshi, 'FunctionName')){
echo call_user_func(array($ceshi, 'FunctionName'), 22);
}
13.call_user_func_array()
同上,區(qū)別只能用數(shù)組,傳遞多個參數(shù)