我需要能够调用一个函数,但函数名存储在一个变量中,这可能吗?例如:
function foo ()
{
//code here
}
function bar ()
{
//code here
}
$functionName = "foo";
// i need to call the function based on what is $functionName
任何帮助都会很棒.
谢谢!
我在GitHub仓库中有一个公共PHP项目,它只包含一个分支(主).
我想要一个独立的分支/分支对我来说是私有的(我已经支付了私人GitHub回购).我希望能够将私有分支/分支的更改合并到公共仓库,反之亦然.
考虑到这一点,这是我的问题:
我试图用正常替换替换重音字符.以下是我目前正在做的事情.
$string = "Éric Cantona";
$strict = strtolower($string);
echo "After Lower: ".$strict;
$patterns[0] = '/[á|â|à|å|ä]/';
$patterns[1] = '/[ð|é|ê|è|ë]/';
$patterns[2] = '/[í|î|ì|ï]/';
$patterns[3] = '/[ó|ô|ò|ø|õ|ö]/';
$patterns[4] = '/[ú|û|ù|ü]/';
$patterns[5] = '/æ/';
$patterns[6] = '/ç/';
$patterns[7] = '/ß/';
$replacements[0] = 'a';
$replacements[1] = 'e';
$replacements[2] = 'i';
$replacements[3] = 'o';
$replacements[4] = 'u';
$replacements[5] = 'ae';
$replacements[6] = 'c';
$replacements[7] = 'ss';
$strict = preg_replace($patterns, $replacements, $strict);
echo "Final: ".$strict;
Run Code Online (Sandbox Code Playgroud)
这给了我:
After Lower: éric cantona
Final: ric cantona
Run Code Online (Sandbox Code Playgroud)
上面给了我ric cantona我想要的输出 …
我知道CHAR和VARCHAR之间的差异,
CHAR - 固定长度
VARCHAR - 可变长度(大小+ 1字节)
但是,我想知道是什么的具有一个varchar长度例如选项purpse VARCHAR(50),VARCHAR(100),VARCHAR(255)
这对我来说似乎没有意义,因为使用的实际空间取决于存储在数据库中的值.
所以我的问题是:
1)可以将我的所有varchar设置为255 2)为什么要指定任何其他长度?
使用:
for($i=1; $i<= 10000; ++$i) {
$arrayOfNumbers[] = rand(1, 99999);
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么存在这样的速度差异:
array_map(array($maxHeap, 'insert'), $arrayOfNumbers);
# Avg Time: 0.92856907844543s
# against
foreach($arrayOfNumbers as $number) {
$maxHeap->insert($number);
}
# Avg Time: 1.3148670101166
Run Code Online (Sandbox Code Playgroud)
$maxHeap 是一个对象 class MaxHeap extends SplMaxHeap
当我通常想要在所有迭代完成之前突破foreach循环时,我只是使用中断; 声明.例如
foreach($nodelist as $node) {
if($metCriteria) {
break;
}
}
Run Code Online (Sandbox Code Playgroud)
但我的下一个例子中有一个switch语句.如果满足其中一个条件,那么我需要打破foreach循环.(中断的问题用于switch语句)
foreach($nodelist as $node)
{
switch($node->nodeName) {
case "a" :
//do something
break;
case "b" :
//break out of forloop
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我只是在switch语句中设置一个变量然后在它之后中断吗?例如
$breakout = false;
foreach($nodelist as $node)
{
switch($node->nodeName) {
case "a" :
//do something
break;
case "b" :
$breakout = true;
break;
}
if($breakout === true) break;
}
Run Code Online (Sandbox Code Playgroud)
这是最好的解决方案吗?还是这有另一种方式?
出于某种原因\n,在使用PHP输出到文件时,我无法使用创建换行符.它只是将" \n" 写入文件.我也尝试使用" \\n",它只写"\n"(如预期的那样).但我不能为我的生活弄清楚为什么在我的字符串中添加\n不会创建新行.我也尝试了,\r\n但它只是将" \r\n" 附加到文件中的行.
例:
error_log('test\n', 3, 'error.log');
error_log('test2\n', 3, 'error.log');
Run Code Online (Sandbox Code Playgroud)
输出:
test\ntest2\n
Run Code Online (Sandbox Code Playgroud)
在重要的情况下在OSX上使用MAMP(某种PHP配置可能吗?).
有什么建议?