Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在函数参数中强制转换数据类型?_Php - Fatal编程技术网

Php 在函数参数中强制转换数据类型?

Php 在函数参数中强制转换数据类型?,php,Php,有人知道它为什么失败吗 <?php function data((string)$data) { echo $data; } data(123); 解析函数的参数时不能强制转换。在函数内部执行 function data($data) { echo (string) $data; } data(123); 这应该是可行的: <?php function data(string $data) { echo $data; } data(123); 您尝试执行的

有人知道它为什么失败吗

<?php 
function data((string)$data)
{
echo $data;

}

data(123);

解析函数的参数时不能强制转换。在函数内部执行

function data($data)
{
echo (string) $data;

}

data(123);
这应该是可行的:

<?php 
function data(string $data) {
    echo $data;
}

data(123);

您尝试执行的操作称为:键入暗示

这就是允许函数或类方法指定它接收的参数类型

静态类型暗示仅在PHP7中引入,因此使用大于该版本的版本,您可以通过以下操作实现所需的功能:

<?php

function myFunction(string $string){
    echo $string;
}

不允许像这样进行类型转换,相反,您可以使用类型提示的概念提示参数的类型阅读更多信息


您不能以这种方式强制转换数据类型,但您可能希望使用函数数据(字符串$data)-类型提示如果您使用php7,它不会在php7中引发任何错误如果您不通过sring,它会工作
<?php

function myFunction(string $string){
    echo $string;
}
<?php 
function data(string $data)
{
echo $data;

}

data(123);
<?php 
function data($data)
{
echo (string) $data;

}

data(123);