目次
指定されたパラメーターはコンストラクターに渡されます
class ShopProduct{ function __construct($title,$firstName,$mainName){ // 构造参数的特殊语法__construct }}$product1 = new ShopProduct('this is title','Peter','Peter Yuan'); //这里就是传入的参数,这里传入到类里面,也会直接传入到构造方法里面,参数按顺序排列
コンストラクタークラス作成時に自動的に実行されます
PHP は弱い型付け言語であるため、変数の宣言時にデータ型を指定する必要はありません。便利ですが、セキュリティ上の問題も発生するため、いくつかの対策を追加する必要があります。 1. 必要に応じて、ブール値であるかどうかを判断して true false を返す is_bool() などの型判定を追加します。
function outputAddresses($resolve){ if(! is_boll ($resolve)){ XXXXXXXXXXXXXX } }
2 .次のようなコメントを追加します:
/** * Determine if the given abstract type has been bound. * * @param string $abstract //宣布传入的参数类型 * @return bool //宣布返回的值 */ public function bound($abstract) { $abstract = $this->normalize($abstract); return isset($this->bindings[$abstract]) || isset($this->instances[$abstract]) || $this->isAlias($abstract); }
オブジェクト指向開発では、「特定のタスクに焦点を当て、外部コンテキストを無視する」ことが非常に重要な設計原則です。 (私の個人的な理解は、特殊なケースに特化することです。特殊なケース、メソッドとクラスは、エラーを避けるために、それぞれのタスクにのみ集中する必要があります。)
型を検出し、型を変換し、依存する必要があります。 Niang Hao について 明確なドキュメントは慎重にバランスが取れています。 (ただし、どれを使用することに決めたとしても、ドキュメントは提供される必要があります)
型関連のバグを防ぐためにコンパイラーに依存することはできません。不正なデータ型のパラメーターが渡されたときに何が起こるかを考慮する必要があります。結果として、クライアントのプログラマを完全に信頼することはできず、クライアントのメソッドに導入された役に立たない情報をどのように扱うかを常に考慮する必要があります。
没有类型提示的时候 class ShopProduct{ } class ShopProductWriter{ public function write($shopProduct){ } } $product1 = new ShopProduct(); $writer = new ShopProductWriter(); $writer->write($product1); 有类型提示的时候 public function write( ShopProduct $shopProduct){ //指定了ShopProduct的对象才能传入,这个就是类型提示 } ...... 在使用的时候 $writer->write($product1); //这样直接传入的时候代码能够自动检测到,如果不是ShopProduct对象的话,会出现报错的