如何将 array_walk() 与属于 class 的函数一起使用?
How to use array_walk() with a function which belongs to a class?
我正在尝试将函数应用于 PHP 中数组中的每个项目。然而,这个函数包含在另一个文件中,包含一个class。
我已经包含了文件,函数可以很容易地调用。它只是不适用于 array_walk。我尝试这样做的方式是...
$new_variable_array = array_walk($variable_array, $class->function);
啊抱歉 array_walk,请忽略我的评论,这里是一个答案。由于在 array_walk 中将函数名称显示为包含函数名称的字符串,因此在使用 class 方法时,您需要在数组中执行此操作,其中数组的第一个元素是 class,第二部分是包含方法名称的字符串。我希望这对你有用。
<?php
//This is my class
$myClass = new MyClass;
//This is my array
$variable_array = array();
//Array walk like so
array_walk($variable_array, array($myClass, 'functionName'));
这是一个工作示例,请检查您的示例是否符合相同的规则/参数。
<?php
//My class
class myClass{
public function addSurname(&$name, $key, $surname){
$name = "$name $surname";
}
}
//Instantiate the class
$myClass = new myClass;
//Array
$array = array('John', 'Mary', 'Jimbob', 'Juan');
//Add the surname to each array element
array_walk($array, array($myClass, 'addSurname'), 'Jones');
//Show the array
foreach($array as $x){
echo $x . '<br />';
}
我正在尝试将函数应用于 PHP 中数组中的每个项目。然而,这个函数包含在另一个文件中,包含一个class。
我已经包含了文件,函数可以很容易地调用。它只是不适用于 array_walk。我尝试这样做的方式是...
$new_variable_array = array_walk($variable_array, $class->function);
啊抱歉 array_walk,请忽略我的评论,这里是一个答案。由于在 array_walk 中将函数名称显示为包含函数名称的字符串,因此在使用 class 方法时,您需要在数组中执行此操作,其中数组的第一个元素是 class,第二部分是包含方法名称的字符串。我希望这对你有用。
<?php
//This is my class
$myClass = new MyClass;
//This is my array
$variable_array = array();
//Array walk like so
array_walk($variable_array, array($myClass, 'functionName'));
这是一个工作示例,请检查您的示例是否符合相同的规则/参数。
<?php
//My class
class myClass{
public function addSurname(&$name, $key, $surname){
$name = "$name $surname";
}
}
//Instantiate the class
$myClass = new myClass;
//Array
$array = array('John', 'Mary', 'Jimbob', 'Juan');
//Add the surname to each array element
array_walk($array, array($myClass, 'addSurname'), 'Jones');
//Show the array
foreach($array as $x){
echo $x . '<br />';
}