php的内置函数create_function创建出来的函数 参数列表与函数体引号问题
create_function创建的函数
使用php的内置函数create_function创建出来的函数。create_function('$item','return $item*3;')
问一下各位 为什么创建出来的函数 参数列表与函数体都要加上引号呢??
回复讨论(解决方案)
string create_function ( string $args , string $code )
两个参数都是字符串
那提交给函数的参数不是也可以是变量吗
因为 create_function 要求传入2个字符串参数
你的代码等价于
function tmp($item) { return $item*3; }$b = array_map('tmp', $a);
用闭包就可以
$b = array_map(function($item) { return $item*3; }, $a);
那提交给函数的参数不是也可以是变量吗
$item已经是提交给匿名函数的变量了。
$a=array(100,200,300);
$b=array_map(create_function('$item','return $item*3;'),$a);
你的意思是说('$item','return $item*3;')它们两个只是create_function这个函数的两个参数而已 它内部会自动创建这个函数是吗
$a=array(100,200,300);
$b=array_map(create_function('$item','return $item*3;'),$a);
var_dump($b);
create_function要求传入两个字符串 可是我这里$a的参数是100 200 300 是数值型的呀 求帮助
function tmp($item) { return $item*3; }
$b = array_map('tmp', $a);
写成这样,你是否有疑问呢?
create_function 要求传入两个字符串
并不代表 create_function 产生的函数也要求传入两个字符串
create_function 要求传入的两个字符串,分别是:匿名函数的参数列表和函数体
$a=array(100,200,300);
$b=array_map(create_function('$item','return $item*3;'),$a);
var_dump($b);
create_function要求传入两个字符串 可是我这里$a的参数是100 200 300 是数值型的呀 求帮助
你似乎混淆一个概念:
create_function是创建匿名函数,他本身(create_function)是一个函数,需要传入的参数是字符串。
而创建出来的函数的参数就是你要传递的参数,也就是函数的 形参 ,100,200,300是传给创建出来的函数的 实参,由于创建的匿名函数内部是直接使用该参数的,所以传进去是数值型,使用的就是数值型。如果传递的不是数值,例如是字符串0123,由于有*操作符,所以会先转化为数值然后操作:
请看:
$a=array(100,200,"011");
$b=array_map(create_function('$item','return $item*3;'),$a);
var_dump($b);
谢谢你 明白了。对了还有一个问题 我是初学者 有很多不明白地方 函数的形参都是以变量来定义的吗
是的都是以变量的形式来定义的
非常感谢上面的高手们
默默收藏

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

La journalisation PHP est essentielle pour surveiller et déboguer les applications Web, ainsi que pour capturer des événements critiques, des erreurs et un comportement d'exécution. Il fournit des informations précieuses sur les performances du système, aide à identifier les problèmes et prend en charge le dépannage plus rapide

Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

L'article examine l'ajout de fonctionnalités personnalisées aux cadres, en se concentrant sur la compréhension de l'architecture, l'identification des points d'extension et les meilleures pratiques pour l'intégration et le débogage.

Alipay Php ...
