在php中尽量使用单引号,直接作为字符串使用,不进行解析,节约服务器资源
在html中尽量使用双引号且在js中尽量使用单引号,否则容易与html混淆


data.update.lastsys.time.agopunc.commaarticle.create.bypunc.commaarticle.file.inpunc.colonJavaScriptpunc.caesuraHTMLpunc.caesuraPHP

由于PHP是弱类型语言,因此函数的输入参数类型无法确定(可以使用类型暗示,但是类型暗示无法用在诸如整型、字符串之类的标量类型上),并且对于一个函数,比如只定义了3个输入参数,PHP却在运行调用的时候输入4个或者更多的参数。因此基于这2点,注定了PHP中无法重载函数(类似Javascript语言),也无法有构造函数的重载。

由于实现函数的重载对提高开发效率很有帮助,如果能象C#或者C++那样就非常好了。事实上,PHP的确提供了一个魔术方法,mixed __call(string name, array arguments)。这个方法在php手册中也有提及,根据官方文档,称此方法可以实现函数重载。当调用对象中一个不存在的方法的时候,如果定义了__call()方法,则会调用该方法。比如下面的代码:

<?php
class A
{
     function __call($name, $args)
    {
        if ($name == 'f')
        {
            $i = count($args);
            if (method_exists($this, $f = 'f' . $i)) {
                call_user_func_array(array($this, $f), $args);
            }
        }
    }
    function f1($a1)
    {
        echo "1个参数" . $a1 . "<br/>";
    }
    function f2($a1, $a2)
    {
        echo "2个参数" . $a1 . "," . $a2 . "<br/>";
    }
    function f3($a1, $a2, $a3)
    {
          echo "3个参数" . $a1 . "," . $a2 . "," . $a3 . "<br/>";
    }
}
(new A)->f('a');
(new A)->f('a', 'b');
(new A)->f('a', 'b', 'c');
?>

另外,构造函数中获取参数可以这样写:

$a = func_get_args(); // 获取构造函数中的参数
$i = count($a);

data.update.lastsys.time.agopunc.commaarticle.create.bypunc.commaarticle.file.inpunc.colonPHP

数组值传递

<?php

function main() {
        $cc = array(
            'a','b'
        );
        change($cc);
        var_dump($cc);
        die;
}
function change($cc){
        $cc = array('dd');
}
main();

output:
array(2) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
}
?>

数组引用传递

<?php

function main() {
        $cc = array(
            'a','b'
        );
        change($cc);
        var_dump($cc);
        die;
}
function change(&$cc){
        $cc = array('dd');
}
main();
?>

outpout:
array(1) {
  [0]=>
  string(2) "dd"
}

类对象值传递

<?php
class pp{
        public $ss = 0;
}
function main() {
        $p = new pp();
        change($p);
        var_dump($p);
        die;
}
function change($p){
        $p->ss = 10;
}
main();
?>

output:
object(pp)#1 (1) {
  ["ss"]=>
  int(10)
}

类对象引用传递

<?php
class pp{
        public $ss = 0;
}
function main() {
        $p = new pp();
        change($p);
        var_dump($p);
        die;
}
function change(&$p){
        $p->ss = 10;
}
main();
?>

output:
object(pp)#1 (1) {
  ["ss"]=>
  int(10)
}

data.update.lastsys.time.agopunc.commaarticle.create.bypunc.commaarticle.file.inpunc.colonPHP
article.category
0.064053s