2.10.PHP7.1 狐教程-【PHP 函数】

目录

博客目录

http://www.foxwho.com/article/24

CSDN目录

http://blog.csdn.net/fenglailea/article/details/60330101

风.fox

PHP 函数

函数由 function 关键词和自定义名称表示

function test($msg,$other){
    return "参数1:{$msg},参数2:{$other}";
}

test 就是一个函数
$msg 就是 这个函数的第一个参数
$other就是 这个函数的第二个参数
$msg$other可是任何数据类型,可以是数值,字符,逻辑,对象,数组,null值等等

函数调用

echo test("这是函数","其他");//返回正确信息

echo test();//PHP程序报错,参数必须有值

在直接调用test()函数时,函数的参数没有传入任何值,那么就会报错,如果你不想直接调用无参数的函数不报错,那么久要给参数增加默认值

以下函数的参数就增加了字符串空值

function test($msg='',$other=''){
    return "参数1:{$msg},参数2:{$other}";
}

更严格的PHP函数参数

函数变量类型声明 两种模式 : 强制 ( 默认 ) 和 严格模式

默认模式 如刚开始的PHP函数

类型:array,object(对象),string、int、float和 bool

class Product{
    public function name(){
        return "书名称";
    }
}

function test(string $msg='',array $option=[],int $int=0, float $float=1.2,bool  $bool=false,Product $product=null){
    return "参数1:{$msg},参数2:{$other}";
}
//调用

test("字符串",['min'=>10],100,98.90,true,new Product());

string $msg 传输的参数必须是字符串

array $option 传输的参数必须是数组

int $int 传输的参数必须是整数

float $float 传输的参数必须是浮点数

bool $bool 传输的参数必须是 逻辑数

Product $product 传输的参数必须 Product对象

php 返回值类型声明

函数和匿名函数都可以指定返回值的类型

function show(): array
{ 
    return [1,2,3,4]; 
}

function arraysSum(array ...$arrays): array
{
return array_map(function(array $array): int {
return array_sum($array);
}, $arrays);
}

PHP 数组返回值 array

function show(): array
{ 
    return [1,2,3,4]; 
}

PHP 字符串返回值 string

function show(): string
{ 
    return "ABCDEF";
}

PHP 整数返回值 int

function show(): int
{ 
    return 9999;
}

PHP 浮点数返回值 float

function show(): float
{ 
    return 11.1;
}

PHP 逻辑返回值 bool

function show(): bool
{ 
    return true;
}

PHP 对象返回值 object

class Product{
    public function name(){
        return "书名称";
    }
}

function show(): Product
{ 
    return new Product();
}

php void返回值 Void 函数

在PHP 7 中引入的其他返回值类型的基础上,一个新的返回值类型void被引入。 返回值声明为 void 类型的方法要么干脆省去 return 语句,要么使用一个空的 return 语句。 对于 void 函数来说,null 不是一个合法的返回值。

function swap(&$left, &$right) : void
{
    if ($left === $right) {
        return;
    }
    $tmp = $left;
    $left = $right;
    $right = $tmp;
}
$a = 1;
$b = 2;
var_dump(swap($a, $b), $a, $b);

以上例程会输出:

null
int(2)
int(1)

试图去获取一个 void 方法的返回值会得到 null ,并且不会产生任何警告。这么做的原因是不想影响更高层次的方法。

PHP 函数 的参数跳跃

如果你有一个函数接受多个可选的参数,目前没有办法只改变最后一个参数,而让其他所有参数为默认值。

function lists($where, $order_by,$field='',$page=1, $page_size=20) {
    ...
}

那么有没有办法设置$page_size=30,而其他两个为默认值。为了解决这个跳跃参数的问题而提出:

lists("deleted=0", "name", default, default, 30);

PHP 可变函数参数

代替 func_get_args()

function add(...$args)  
{  
    $result = 0;  
    foreach($args as $arg)  
        $result += $arg;  
    return $result;  
} 

PHP 函数 可为空(Nullable)类型

类型现在允许为空,当启用这个特性时,传入的参数或者函数返回的结果要么是给定的类型,要么是 null 。可以通过在类型前面加上一个问号来使之成为可为空的。

function test(?string $name)
{
    var_dump($name);
}

以上例程会输出:

string(5) "tpunt"
NULL
Uncaught Error: Too few arguments to function test(), 0 passed in...

PHP 函数 参数解包功能

在调用函数的时候,通过 … 操作符可以把数组或者可遍历对象解包到参数列表,这和Ruby等语言中的扩张(splat)操作符类似

function add($a, $b, $c) {  
    return $a + $b + $c;  
}  
$arr = [2, 3];  
add(1, ...$arr);

PHP 函数 Callable typehint

对PHP函数,类的方法调用

function foo(callable $callback) {  
}

案例

foo("false"); //错误,因为false不是callable类型  
  foo("printf"); //正确  
  foo(function(){}); //正确  
class A {  
  static function show() {  
    }  
}  
  foo(array("A", "show")); //正确

参考
http://blog.csdn.net/fenglailea/article/details/52717646

### 回答1: bytecode-viewer-2.10.x.jar是一个Java字节码查看器的JAR文件。字节码是一种中间代码表示形式,它是Java源代码在编译过程中生成的。bytecode-viewer-2.10.x.jar允许开发者查看和分析编译后的Java程序的字节码。 使用bytecode-viewer-2.10.x.jar,开发者可以打开并查看已编译的Java类文件。它提供了图形化界面,使得分析字节码变得更加直观和方便。通过这个工具,开发者可以查看类的结构、字段、方法、注解等。 bytecode-viewer-2.10.x.jar还提供了反汇编功能,将字节码转换为人类可读的指令序列。这对于想要深入了解Java代码的开发者来说非常有用。通过反汇编,开发者可以了解Java程序的底层实现,包括虚拟机指令和操作数堆栈等。 此外,bytecode-viewer-2.10.x.jar还支持导出字节码内容供其他工具分析。这样,开发者可以将字节码与其他分析工具结合使用,以获取更多信息和进行更深入的分析。 总的来说,bytecode-viewer-2.10.x.jar是一个提供Java字节码查看和分析功能的工具。它可以帮助开发者了解编译后的Java程序的内部结构和细节,以及进行字节码反汇编和导出等操作。这对于开发者来说是一个很有用的工具,可以帮助他们更好地理解和分析Java程序。 ### 回答2: bytecode-viewer-2.10.x.jar是一个用于查看Java字节码的工具。字节码是一种中间语言,它是Java代码编译后生成的一种二进制文件,可以在Java虚拟机上执行。 使用bytecode-viewer-2.10.x.jar可以帮助我们更好地理解和分析已编译的Java程序。它提供了一个直观的界面,可以将字节码文件以可读的形式显示出来。 除了查看字节码文件外,bytecode-viewer-2.10.x.jar还提供了其他一些有用的功能。例如,它可以反编译字节码文件,将其转换回Java源代码。这对于理解其他人编写的代码或者进行代码审查非常有帮助。 此外,bytecode-viewer-2.10.x.jar还支持对字节码进行编辑和调试。它可以让开发人员直接修改字节码文件,并查看修改后的效果。这对于调试和优化代码非常有用。 总之,bytecode-viewer-2.10.x.jar是一个功能强大的工具,它可以帮助我们更好地理解和分析Java字节码文件。无论是学习Java字节码的原理,还是进行代码审查和调试,都可以借助它来提高效率和准确性。 ### 回答3: bytecode-viewer-2.10.x.jar是一个用于查看Java字节码的工具,它可以帮助开发人员分析和理解Java程序的运行机制。 Java字节码是一种中间代码,是Java编译器将源代码编译成的一种平台无关的二进制格式。它是Java虚拟机(JVM)可以理解和执行的代码。 使用bytecode-viewer-2.10.x.jar,开发人员可以通过简洁的界面直观地查看Java字节码文件。它提供了一些有用的功能,比如跳转到特定的类或方法,查看方法的代码体,查看常量池等。 通过查看Java字节码,开发人员可以更深入地了解Java程序的内部工作原理。他们可以分析程序的性能问题,定位潜在的错误和漏洞,并做出优化和改进。 此外,bytecode-viewer-2.10.x.jar还提供了反编译的功能,可以将字节码文件还原为Java源代码。这对于没有源代码或需要了解第三方库的实现细节的开发人员来说非常有用。 总之,bytecode-viewer-2.10.x.jar是一个强大的工具,它可以帮助开发人员深入了解和分析Java程序的字节码,并提供了反编译的功能。如果您对Java字节码感兴趣或需要对Java程序进行深入分析和调试,这个工具是一个非常有用的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风.foxwho

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值