AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
# 类型约束 ## **类型约束** PHP的类方法和函数中可实现[类型约束](http://php.net/manual/zh/language.oop5.typehinting.php),7以下参数只能指定**类**、**数组**(PHP 5.1 起)、**接口**、**callable**(PHP 5.4 起) 四种类型,参数可默认为NULL,PHP并不能约束标量类型或其它类型。 ``` <pre class="calibre17">``` class <span class="token4">Person</span> <span class="token3">{</span> public $name <span class="token1">=</span> <span class="token2">'张三'</span><span class="token3">;</span> <span class="token3">}</span> <span class="token">// 对象可以做类型约束:类名 抽象类名 接口 </span> <span class="token5">function</span> <span class="token4">fun</span><span class="token3">(</span>Person $a<span class="token3">)</span> <span class="token3">{</span> echo $a<span class="token1">-</span><span class="token1">></span>name<span class="token3">;</span> <span class="token3">}</span> <span class="token">// fun(1234); // 报错 </span> $p <span class="token1">=</span> <span class="token5">new</span> <span class="token4">Person</span><span class="token3">;</span> <span class="token4">fun</span><span class="token3">(</span>$p<span class="token3">)</span><span class="token3">;</span> <span class="token">// 数组类型约束 </span> <span class="token5">function</span> <span class="token4">demo</span><span class="token3">(</span>Array $a<span class="token3">)</span> <span class="token3">{</span> var\<span class="token4">_dump</span><span class="token3">(</span>$a<span class="token3">)</span><span class="token3">;</span> <span class="token3">}</span> <span class="token">//demo('abc');//这个也会报错 </span> <span class="token4">demo</span><span class="token3">(</span>\<span class="token3">[</span><span class="token2">'username'</span><span class="token1">=</span><span class="token1">></span><span class="token2">'zhangsan'</span>\<span class="token3">]</span><span class="token3">)</span><span class="token3">;</span> ``` ```