function test3() { if (true) { function func3() { return 'called func3'; } } else { function func3() { return 'did not call func3'; } } $result1 = func3(); echo "Test that function may be conditionally defined.<br>\n"; echo 'result: ' . ($result1 == 'called func3' ? 'pass' : 'fail') . "<br><br>\n\n"; }
echo 'After function: a = ' . $a . "<br />"; echo 'Before function: a = ' . $a . "<br />"; echo multiply3($a, 3) . "<br />"; echo 'After function: a = ' . $a . "<br />"; # 变量函数 $a = 'func1'; function func1() { echo "This is function 1<br />"; } function func2() { echo "This is function 2<br />"; } $a(); $a = 'func2'; $a(); # 对函数的引用,即为对函数返回值的引用 function &func3($param) { return $param; } $test =& func3('Reference'); echo $test; # unset清楚变量名字和变量内存空间的联系,并不是销毁变量内存 $a = 1; $b =& $a; echo "\$b = {$b}<br />"; unset($b); echo @"\$b = {$b}<br />"; echo "\$a = {$a}<br />";
<?php /** * Created by PhpStorm. * User: liuhengsheng * Date: 15/9/21 * Time: 下午7:20 */ require '../UserfulPhpReposity/HttpUtil.php'; function fun1() { $objHttpUtil = new HttpUtil(); $result = $objHttpUtil->getHostFromHttpUrl('http://127.0.0.1/index.php'); echo $result; } function fun2() { $regex = "/a([b]+).d/"; $str = 'abcdxxabbbbddxxxabbbbrd'; preg_match_all($regex, $str, $match, PREG_PATTERN_ORDER); print_r($match); } function fun3() { $str = '&ldsdjskds&'; $str = substr($str, 1, strlen($str) - 1); echo $str; } func3();
function func3(FooClass &...$args) { foreach ($args as &$arg) { $arg->x = "hi"; } } $foo1 = new FooClass(); $foo2 = new FooClass(); $foo3 = new FooClass(); $bar = new BarClass(); func1($foo1, $bar, $foo2); /* Error, Type!! // func2( $foo1, $bar, $foo2 ); Catchable fatal error: Argument 2 passed to func2() must be an instance of FooClass, instance of BarClass given, called in /usr/share/nginx/www/sample/05new_expression.php on line 28 and defined in /usr/share/nginx/www/sample/05new_expression.php on line 10 */ func3($foo1, $foo2, $foo3); // = func3( ...[$foo1, $foo2, $foo3] ); var_dump($foo1); var_dump($foo2); var_dump($foo3); /* object(FooClass)#1 (1) { ["x"]=> string(2) "hi" } object(FooClass)#2 (1) { ["x"]=> string(2) "hi" } object(FooClass)#3 (1) { ["x"]=>